首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于指数和整数的Python问题

关于指数和整数的Python问题
EN

Stack Overflow用户
提问于 2011-08-11 04:21:02
回答 3查看 2.1K关注 0票数 7

出于好奇,我运行了以下命令:

代码语言:javascript
复制
>>> int(1e100)

并且,输出结果是:

代码语言:javascript
复制
10000000000000000159028911097599180468360808563945281389781327557747838772170381060813469985856815104L

为什么?为什么看起来不像这样:

代码语言:javascript
复制
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L

这是int函数的产物,还是大型long存储的产物

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-11 04:44:11

1e100是一个浮点数,在significand中有53位精度。您试图表示的整数需要333位才能精确,因此需要进行一些舍入。最低位被替换,以使基数2最接近您想要的结果。

请参阅:http://docs.python.org/tutorial/floatingpoint.html#representation-error

票数 9
EN

Stack Overflow用户

发布于 2011-08-11 04:23:13

它被转换为一个浮点数,然后显示为一个整数。所以欢迎来到不精确的四舍五入世界

票数 1
EN

Stack Overflow用户

发布于 2011-08-11 04:25:09

1e100是一个浮点型(通常,使用e表示浮点型):

代码语言:javascript
复制
>>> type (1e100)
<type 'float'>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7017245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档