为了避免使用浮点数表示分数(因为在计算机中使用浮点数会涉及到近似),我们可以使用两个整数来表示分数的分子和分母。下面是示例代码:
class Fraction:
def __init__(self, numerator, denominator):
self.numerator = numerator
self.denominator = denominator
def __str__(self):
return f"{self.numerator}/{self.denominator}"
def __mul__(self, other):
return Fraction(self.numerator * other.numerator, self.denominator * other.denominator)
def __add__(self, other):
if self.denominator == other.denominator:
return Fraction(self.numerator + other.numerator, self.denominator)
else:
return Fraction(self.numerator * other.denominator + other.numerator * self.denominator, self.denominator * other.denominator)
def __sub__(self, other):
if self.denominator == other.denominator:
return Fraction(self.numerator - other.numerator, self.denominator)
else:
return Fraction(self.numerator * other.denominator - other.numerator * self.denominator, self.denominator * other.denominator)
def __truediv__(self, other):
return Fraction(self.numerator * other.denominator, self.denominator * other.numerator)
以上代码使用类 Fraction
来表示分数,其中的运算符重载方法 __mul__
、__add__
、__sub__
、__truediv__
等可以对分数进行基本的数学运算。如果需要,还可以添加其他运算符重载方法。通过这种方式,我们就可以使用整数来表示分数,而不必担心浮点数近似带来的问题。
下一篇:表示一个数字的算法