为什么10的幂不等于Python中大数的科学符号?

2024-09-29 21:42:01 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么在Python中10**5等于1e5,但10**50不等于1e50

Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 10**5 == 1e5
True
>>> 10**50 == 1e50
False

这是真的,最多10*22。那就错了:

>>> 10**22 == 1e22
True
>>> 10**23 == 1e23
False

Tags: orfalsetrueontypetagsbithelp
1条回答
网友
1楼 · 发布于 2024-09-29 21:42:01

Python3支持大整数,并尽可能使用它们10**50是对整数的计算,产生精确的数字十到五十次方。另一方面,科学记数法总是使用浮点,所以1e50是一个floating-point value,大约等于十的五十次方

>>> type(10 ** 50)
<class 'int'>
>>> type(1e50)
<class 'float'>

相关问题 更多 >

    热门问题