使用该fractions
模块可以简化分数:
>>> from fractions import Fraction
>>> Fraction(3.2)
Fraction(3602879701896397, 1125899906842624)
>>> Fraction(3.2).limit_denominator()
Fraction(16, 5)
从Fraction.limit_denominator()
功能:
查找并返回最接近Fraction
于self
具有最多max_denominator分母。该方法对于找到给定浮点数的有理逼近很有用
浮点数在精度上的限制,并不能代表很多数字 准确 ; 您看到的是四舍五入的表示形式,但实际数字是:
>>> format(3.2, '.50f')
'3.20000000000000017763568394002504646778106689453125'
因为浮点数表示为二进制分数的和;1/5只能通过将1/8 + 1/16 + 1/128 +更多的二进制分数相加来增加2的指数来表示。