oro*_*aki 6 python floating-point
出于好奇,我运行了以下内容:
>>> int(1e100)
Run Code Online (Sandbox Code Playgroud)
而且,输出是:
10000000000000000159028911097599180468360808563945281389781327557747838772170381060813469985856815104L
Run Code Online (Sandbox Code Playgroud)
为什么?为什么这看起来不像:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
Run Code Online (Sandbox Code Playgroud)
这是int功能的产品,还是大型存储的产品long?
1e100是一个浮点数,随着精度53位有效数字.您尝试表示的整数需要333位才能准确,因此需要进行一些舍入.替换底部位以使最接近的基数2为您想要的结果.
请参阅:http://docs.python.org/tutorial/floatingpoint.html#representation-error
| 归档时间: |
|
| 查看次数: |
1577 次 |
| 最近记录: |