python float模块的as_integer_ratio打印的结果疑义
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)
这就是原因