📅  最后修改于: 2023-12-03 15:29:08.305000             🧑  作者: Mango
在数学中,有理数指的是可以表示为两个整数的比值的数,其中分母不为零。因此,我们可以通过判断一个数是否能表示为两个整数的比值来判断它是否为有理数。
对于小数形式的数,我们可以将其转化为分数形式,然后判断分数是否为有理数。
我们可以将小数形式的数写成分数形式,即 0.57 = 57 / 100。然后我们可以对分数进行约分,即将分子分母同时除以它们的公因数。
对于分子分母为两个整数的分数,如果它们没有大于1的公因数,那么这个分数就是最简分数。这是因为如果存在一个大于1的公因数,我们可以继续将分子和分母同时除以这个公因数,直到不能再约分为止。
对于一个最简分数,如果它的分母不为零,那么它就是一个有理数。因此,我们将0.57转化为分数形式然后进行约分,如果分母不为零,那么0.57就是一个有理数。
def is_rational(number: float) -> bool:
numerator, denominator = number.as_integer_ratio()
gcd = math.gcd(numerator, denominator)
numerator, denominator = numerator // gcd, denominator // gcd
return denominator != 0
print(is_rational(0.57)) # True
以上代码中,我们使用了Python内置的as_integer_ratio()
方法将浮点数转化为最简分数形式。然后我们使用math库提供的gcd()
求分子分母的最大公因数,进而进行约分。最后判断分母是否为零即可。