在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中可以任意变大。。浮动没有那么多。