我试着得到变量的比值,得到意想不到的结果。有人能解释一下吗?
>>> value = 3.2
>>> ratios = value.as_integer_ratio()
>>> ratios
(3602879701896397, 1125899906842624)
>>> ratios[0] / ratios[1]
3.2
我使用Python3.3
但我认为(16, 5)
是更好的解决方案
为什么对2.5
正确
>>> value = 2.5
>>> value.as_integer_ratio()
(5, 2)
Tags:
使用^{} module 来简化分数:
从^{} function :
浮点数的精度有限,不能精确地表示许多数字;您看到的是一个舍入表示,但实数是:
因为浮点数表示为二进制分数的和;1/5只能通过将1/8+1/16+1/128+个二进制分数相加来表示,以增加2的指数。
不是16/5,因为
3.2
不是3.2正是。。。它是它的浮点粗略近似。。。例如:3.20000000000000017764
相关问题 更多 >
编程相关推荐