具有小数除法的余数不适用于Python

时间:2014-04-10 11:48:51

标签: python floating-point modulo

具有小数除法的余数不适用于Python。 例如,

>>> 59.28%3.12
3.119999999999999
>>> 59.28/3.12
19.0

有没有办法让0.0作为 59.28%3.12的输出

1 个答案:

答案 0 :(得分:2)

我不知道为什么,我不知道花车模数实现的细节,但是这样可以正常工作:

from decimal import Decimal
Decimal("59.28") % Decimal("3.12")

编辑:请注意,您必须在构造函数中使用引号"(即字符串)。否则,它会尝试将这两个数字解释为浮点数,这是问题的根源(不正确的近似值)。