gpt4 book ai didi

Python 3 小数精度

转载 作者:行者123 更新时间:2023-11-28 18:10:06 24 4
gpt4 key购买 nike

我对 float 有疑问:

 a = 0.4812
b = 0.4813
a-b
-9.999999999998899e-05
a = Decimal(0.4812)
b = Decimal(0.4813)
a-b
Decimal('-0.000099999999999988986587595718447118997573852539062500')

我怎样才能准确地得到 -0.0001?

最佳答案

您需要将数字作为字符串传递给 Decimal 构造函数,如果您使用浮点文字,它们在构造 Decimal 对象之前就已经失去了精度。

>>> a = Decimal('0.4812')
>>> b = Decimal('0.4813')
>>> a - b
Decimal('-0.0001')

为了更清楚地说明:

>>> Decimal('0.4812')                                              
Decimal('0.4812')
>>> Decimal(0.4812)
Decimal('0.481200000000000016608936448392341844737529754638671875')

关于Python 3 小数精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51223780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com