Python 使用科学记数法,两个不同的浮点值相等

Python 使用科学记数法,两个不同的浮点值相等,python,Python,以下表达式的计算结果为何为真 In [0]: 1e18 == (1e18 + 50) Out[0]: True 当用指数法代替科学记数法时,正如人们所预料的那样,它的计算结果为False: In [1]: 10**18 == (10**18 + 50) Out[1]: False 您没有两对浮动。最重要的例子是科学记数法,是一对浮点数。由于添加的差值小于浮点精度,因此它们的比较结果相同 下面的示例是一对整数。您可以使用type功能轻松检查这一点。Python的长整数可以保持所需的18位精度

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

In [0]: 1e18 == (1e18 + 50)
Out[0]: True
当用指数法代替科学记数法时,正如人们所预料的那样,它的计算结果为
False

In [1]: 10**18 == (10**18 + 50)
Out[1]: False
您没有两对浮动。最重要的例子是科学记数法,是一对浮点数。由于添加的差值小于浮点精度,因此它们的比较结果相同

下面的示例是一对整数。您可以使用
type
功能轻松检查这一点。Python的长整数可以保持所需的18位精度

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

这是(多精度)整数算术和计算机浮点运算之间的区别“e”表示法给出了浮点值。我真傻,我忘了添加一个
来使第二个表达式浮动。这完全有道理,谢谢!