【发布时间】:2020-06-07 14:21:54
【问题描述】:
我使用小数模块来尽量避免浮点错误。从十进制模块的纪录片中说:
十进制数可以精确表示。相比之下,数字像 1.1 和 2.2 没有二进制浮点的精确表示。最终用户通常不会期望 1.1 + 2.2 显示为 3.3000000000000003 和二进制浮点一样。
但是当我尝试用小数求和时,我仍然得到那些浮点错误。
decimal.Decimal(4.04)+decimal.Decimal(4.04)
>>Decimal('8.080000000000000071054273576')
这是为什么?
【问题讨论】:
-
这是一个常见的错误;周围应该有很多重复,但我很难找到它们。这是一个:stackoverflow.com/q/25829853/270986
标签: python-3.x floating-point decimal