如何测试一个数字是否可以被小于1的十进制整除? (54.10%.10)

时间:2015-08-18 05:41:27

标签: python decimal division modulus

我试图测试float即(54.10)是否可被0.10整除。 54.10 % .10返回.10而不是0,为什么会这样,我怎样才能让它按照我的意愿去做?

2 个答案:

答案 0 :(得分:3)

您可以使用decimal模块来避免浮点精度问题:

>>> import decimal
>>> decimal.Decimal('54.10') % decimal.Decimal('0.10')
Decimal('0.00')

答案 1 :(得分:3)

这里经过验证的方法是将除数和被除数乘以10的幂。有效地,54.10变为541,0.10变为1.然后你可以使用标准模数或天花板和地板来达到你需要的效果。