在我的原始代码中,我试图从一些浮点值中计算出一些索引,并且遇到了以下问题:
>>> print int((1.40-.3)/.05)
21
但:
>>> print ((1.40-.3)/.05)
22.0
我无话可说。有人可以解释一下吗?
这是由浮点错误引起的:
>>> print repr((1.40-.3)/.05)
21.999999999999996
您可以尝试使用该Decimal
类型:
>>> from decimal import Decimal
>>> Decimal
<class 'decimal.Decimal'>
接着
>>> (Decimal('1.40') - Decimal('.3')) / Decimal('.05')
Decimal('22')
这fractions.Fraction
堂课也会上课。或者,您可以四舍五入:
>>> round((1.40-.3)/.05, 10) # round to 10 decimal places
22.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句