gpt4 book ai didi

python - 使用科学记数法,两个不同的 float 计算结果相等

转载 作者:行者123 更新时间:2023-12-02 18:53:43 25 4
gpt4 key购买 nike

以下表达式的计算结果为何为 true?

In [0]: 1e18 == (1e18 + 50)
Out[0]: True

当用指数替换科学记数法时,正如人们所期望的那样,其计算结果为False:

In [1]: 10**18 == (10**18 + 50)
Out[1]: False

最佳答案

没有有两对浮子。最上面的例子是一对 float ,是科学记数法。由于相加的差值小于浮点精度,因此它们比较相等。

下面的例子是一对整数。您可以使用 type 函数轻松检查这一点。 Python 的长整型可以毫无问题地保持所需的 18 位精度。

>>> type(1e18)
<class 'float'>
>>> type(10**18)
<class 'int'>

关于python - 使用科学记数法,两个不同的 float 计算结果相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66431149/

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