我知道计算小数对计算机来说不是一件容易的事,但是有没有什么方法可以用python完成简单的算术呢?最好的方法是什么?你知道吗
>>> 0.3 + 0.3 + 0.3 + 0.1 != 1
True
>>> from decimal import Decimal
>>> Decimal(0.3) + Decimal(0.3) + Decimal(0.3) + Decimal(0.1) != 1
True
>>> Decimal(0.3) + Decimal(0.3) + Decimal(0.3) + Decimal(0.1) != Decimal(1)
True
>>> Decimal(0.3) + Decimal(0.3) + Decimal(0.3) + Decimal(0.1)
Decimal('0.9999999999999999722444243843')
更新:
正如建议的那样,解决方案是使用Decimal()
和字符串而不是普通数字。但我发现这个解决方案非常不令人满意(非肾盂和丑陋)。真的没有别的办法吗?(也许是用装饰师?)你知道吗
当您写入
Decimal(0.3)
时,您使用的是一个浮点值0.3,该值会出现精度错误。你知道吗使用字符串完全避免浮点运算。你知道吗
相关问题 更多 >
编程相关推荐