gpt4 book ai didi

python - decimal.Decimal(float) 与 decimal.Decimal.from_float(float)

转载 作者:行者123 更新时间:2023-11-28 22:51:18 25 4
gpt4 key购买 nike

我是 Python 编程的新手,最近我一直在学习数据类型的某些方面。正如我所读,decimal.Decimal() 方法创建了一个小数对象; decimal.Decimal.from_float() 方法从浮点对象创建一个小数对象。但是,两者都产生相同的输出:

>>> import decimal
>>> x = 3.14561
>>> y = 3.14561
>>> x = decimal.Decimal.from_float(x)
>>> y = decimal.Decimal(y)
>>> x == y

True

那么,两者有什么区别呢?

最佳答案

查看文档,在 Python 2.7 之前,Decimal() 构造函数不能接受 float 参数,这就是您需要 from_float() 类方法的原因

从2.7开始,构造函数也可以直接带一个float,所以两者是一样的。

还是从文档来看,我想最初不允许从 float 构造的原因是:

Note Decimal.from_float(0.1) is not the same as Decimal(‘0.1’). Since 0.1 is not exactly representable in binary floating point, the value is stored as the nearest representable value which is 0x1.999999999999ap-4. That equivalent value in decimal is 0.1000000000000000055511151231257827021181583404541015625.

关于python - decimal.Decimal(float) 与 decimal.Decimal.from_float(float),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21663881/

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