gpt4 book ai didi

python - 为什么 python decimal.Decimal 精度与 equable args 不同?

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:15 25 4
gpt4 key购买 nike

这是我的输入:

>>> from decimal import Decimal
>>> Decimal('114.3')
Decimal('114.3')
>>> Decimal(114.3)
Decimal('114.2999999999999971578290569595992565155029296875')

我认为 Decimal 的这两个实例必须相等,但是带有 float arg 的 Decimal 似乎精度不高。为什么是这样?我的 python 版本是 2.7.3。提前致谢!

最佳答案

当您执行 Decimal(114.3) 时,您正在创建一个常规浮点对象,然后将其传递给 Decimal。当创建 float 114.3 时,在 Decimal 看到它之前,由于二进制浮点不精确,精度会丢失。没有办法恢复这种准确性。这就是 Decimal 接受字符串表示形式作为输入的原因,因此它可以看到您实际键入的内容并使用正确的精度级别。

关于python - 为什么 python decimal.Decimal 精度与 equable args 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202921/

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