0

这是一个例子:

x = frac(1,3)
x
Out[138]: Fraction(1, 3)
y = frac(5/39)
y
Out[140]: Fraction(288692283805801, 2251799813685248)
print(x+y)
3117876665102651/6755399441055744
x+y
Out[142]: Fraction(3117876665102651, 6755399441055744)

为什么 5/39 会自动转换为 288692283805801/2251799813685248?使用 Python 3.7.8

4

1 回答 1

3

5/39 是一个浮点数,不能准确地表示为 5/39。分子和分母大的分数是精确表示近似5/39的浮点数的有理数。

试试fractions.Fraction(5, 39)吧。

分数模块的文档中给出了一个类似的例子,没有像人们天真期望的那样Fraction(1.1)返回。https://docs.python.org/3/library/fractions.htmlFraction(11, 10)

于 2022-02-13T16:53:15.280 回答