出于好奇,我运行了以下命令:
>>> int(1e100)并且,输出结果是:
10000000000000000159028911097599180468360808563945281389781327557747838772170381060813469985856815104L为什么?为什么看起来不像这样:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L这是int函数的产物,还是大型long存储的产物
发布于 2011-08-11 04:44:11
1e100是一个浮点数,在significand中有53位精度。您试图表示的整数需要333位才能精确,因此需要进行一些舍入。最低位被替换,以使基数2最接近您想要的结果。
请参阅:http://docs.python.org/tutorial/floatingpoint.html#representation-error
发布于 2011-08-11 04:23:13
它被转换为一个浮点数,然后显示为一个整数。所以欢迎来到不精确的四舍五入世界
发布于 2011-08-11 04:25:09
1e100是一个浮点型(通常,使用e表示浮点型):
>>> type (1e100)
<type 'float'>https://stackoverflow.com/questions/7017245
复制相似问题