Aks*_*waj 1 python floating-point precision
我有一个浮点数列表。我需要对这些数字执行某些加法和乘法运算,并且代码的逻辑需要准确的答案(例如与同一列表中的其他数字进行比较)。但它没有给出确切的答案。寻找类似问题的解决方案建议使用十进制类。同样的问题仍然存在。下面是一个例子:
from decimal import Decimal
Decimal(1.2)*Decimal(2)
Decimal('2.399999999999999911182158030')
Run Code Online (Sandbox Code Playgroud)
问题在于,当您想要精确值时,Decimal(1.2)却使用浮点值。1.2使用字符串来代替使用精确值并获得所需的结果:
>>> from decimal import Decimal
>>> Decimal(1.2)
Decimal('1.1999999999999999555910790149937383830547332763671875')
>>> Decimal("1.2")
Decimal('1.2')
>>> Decimal("1.2")*Decimal("2")
Decimal('2.4')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7388 次 |
| 最近记录: |