【发布时间】:2015-08-18 05:41:26
【问题描述】:
我正在尝试测试 float 即(54.10)是否可以被 0.10 整除。 54.10 % .10 返回 .10 而不是 0,为什么会这样,我怎样才能让它做我想做的事情?
【问题讨论】:
标签: python decimal division modulus
我正在尝试测试 float 即(54.10)是否可以被 0.10 整除。 54.10 % .10 返回 .10 而不是 0,为什么会这样,我怎样才能让它做我想做的事情?
【问题讨论】:
标签: python decimal division modulus
这里久经考验的真正方法是将除数和除数乘以 10 的幂。实际上,54.10 变为 541,0.10 变为 1。然后您可以使用标准模数或上限和下限来实现所需的结果。
【讨论】:
您可以使用decimal 模块来避免浮点精度问题:
>>> import decimal
>>> decimal.Decimal('54.10') % decimal.Decimal('0.10')
Decimal('0.00')
【讨论】: