我正在编写一个使用Fractions
模块的程序。我想得到一个浮点数的最简分数。当我尝试使用0.5
这样的数字时,它可以正常工作:
>>> import fractions
>>> str(fractions.Fraction(0.5))
'1/2'
但是当我用0.55
或0.1
尝试时,它会显示分子和分母都很高的分数,而不是11/20
和1/10
。你知道吗
>>> str(fractions.Fraction(0.1))
'3602879701896397/36028797018963968'
>>> str(fractions.Fraction(0.55))
'2476979795053773/4503599627370496'
如何确保脚本始终显示最简化的分数?有没有办法用Fractions
模块或其他模块来实现,或者我必须自己编写函数?你知道吗
尝试使用docs中的
decimal
模块示例:当您传递
0.55
时,您传递的是一个float,因此在Fraction
收到值之前,它已经是一个不精确的表示。你知道吗或者,如果传递字符串,则可以获得所需的精确值:
试试这个:
查看结果:
相关问题 更多 >
编程相关推荐