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



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

这里行之有效的方法是将除数和被除数乘以10的幂。实际上,54.10变成了541,0.10变成了1。然后,您可以使用标准模或天花板和地板来实现您需要的。

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

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

最新更新