遇到天文数字的时候,Python的计算结果是这样的:
>>> 100000000000000000.0/10
10000000000000000.0
>>> 1000000000000000000.0/10
1e+17
我们看到前面那个数是十亿亿,当把这个数字除以10的时候,结果是正常的一亿亿。而下面那个数字是一百亿亿,结果却变成了1e+17,这个意思是说,1后面加上17个零,看来用python计算商的时候,这个商如果超过了一亿亿,就会变成一种简写法。由于可以整除,这结果还算看得懂,但如果是无法整除的数,那就太不负责任了,比如:
>>> 13493847294832432943274324324324.0/227
5.9444261210715566e+28
这结果难以让人接受,还不如拿掉小数点,取整数商:
>>> 13493847294832432943274324324324/227
59444261210715563626759137992L
但这也不能让人满意,到现在我不知道如何能让python对天文数字的除法如实地报告结果,能看到自由限定位数的浮点数值。
用irb试了一下,前面那个不简写,后面不能整除的是简写,看来这种简写法在这类语言的计算中是通用的。
补记: 找到了合适的高级计算器 dc ,可以自己决定计算结果的精确度。
阅读(1954) | 评论(0) | 转发(0) |