一段 Python 的精确除法脚本

#!/usr/bin/python

def divmod_plus(a, b, n):
    point = False
    for i in xrange(n):
        a, c = divmod(a, b)
        if c >= b:
            yield str(a)
        else:
            yield '%d' % a
            if point is False:
                point = True
                yield '.'
        a = c * 10

print ''.join(divmod_plus(100, 37, 1000))

输出结果为:

2.702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702702