首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python float模块的as_integer_ratio打印的结果疑义

2013-10-15 
python float模块的as_integer_ratio打印的结果疑问 (0.25).as_integer_ratio()(1, 4) (0.7).as_int

python float模块的as_integer_ratio打印的结果疑问


>>> (0.25).as_integer_ratio()
(1, 4)
>>> (0.7).as_integer_ratio()
(3152519739159347, 4503599627370496)
>>>

第二个0.7的结果为什么不是(7,10),而是一个很大的数
[解决办法]
在计算机里数字是用2进制表达的,貌似python的算法是取浮点里若干个byte直接转化成整数作为分母...
[解决办法]
>>> (0.7).as_integer_ratio()
(3152519739159347, 4503599627370496)
>>> (0.69999999999999999998).as_integer_ratio()
(3152519739159347, 4503599627370496)
这就是原因

热点排行