Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1308978
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类: Python/Ruby

2010-01-05 23:14:14

遇到天文数字的时候,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 ,可以自己决定计算结果的精确度。
阅读(1923) | 评论(0) | 转发(0) |
0

上一篇:欢度圣诞

下一篇:[Bash] 点击脚本

给主人留下些什么吧!~~