我正在使用类构造函数 Fraction 来创建分数。 从浮点数创建分数时,使用 Fraction 类构造函数和 from_float 方法有什么区别?
我用不同的数字测试了它,得到了相同的答案。 例如:
from fractions import Fraction
f1 = Fraction(0.3)
f2 = Fraction.from_float(0.3)
print(f1) # Output: 5404319552844595/18014398509481984
print(f2) # Output: 5404319552844595/18014398509481984
来自文档:
在 3.2 版中更改:
构造函数现在接受Fraction
和float
实例。decimal.Decimal
注意: 从 Python 3.2 开始,您还可以直接从
.Fraction
构造一个float
实例
换句话说,在 Python < 3.2, you had 中使用
Fraction.from_float
从 Fraction
构造一个 float
。从 3.2 开始,这就变得不必要了,但可能仍然存在,以免破坏向后兼容性。你可能还想用它来进行更明确的类型检查,因为如果你传递了一些其他类型,Fraction.from_float
会引发错误,而 Fraction
构造函数可能会默默接受并且 潜在 导致微妙的错误。