1e400 == 10**400 is False?



在Python中,1e400的计算结果为inf,但10**400的打印结果很好。理论上,1e(x(应该是10**x,但为什么以及何时会分解?

与此相关,1e5 == 10**5的求值结果为True,而1e40 == 10**40的求值结果则为False。然后,当int(1e22)显示具有22个零的1时,int(1e23)显示99999999999999991611392。同时,10**100000仍然打印得很好。(尽管千万到一百万都在冻结我的电脑,但它仍然没有给我一个溢出错误。(

这种不准确的背后是什么?1e()10**()差吗?

您正在使用不同类型的

print (type(1e5))    # float
print (type(10**5))  # int

Int在python中可以任意变大。。浮动没有那么多。

最新更新