c# Fraction不会使用Reduce()方法
本文关键字:Reduce 方法 Fraction | 更新日期: 2023-09-27 18:16:15
我需要将两个分数相乘,然后减少结果分数,但我不知道如何使我的结果分数通过我的reduce ();方法。
public class Fraction
{
public static Fraction operator * (Fraction fract1, Fraction fract2)
{
int numerato = fract1.numerator * fract2.numerator;
int denominato = fract1.denominator * fract2.denominator;
return new Fraction(numerato, denominato).Reduce();
}
}
操作符*和Reduce()的写法如下:
public static Fraction operator * (Fraction fract1, Fraction fract2)
{
int numerato = fract1.numerator * fract2.numerator;
int denominato = fract1.denominator * fract2.denominator;
return new Fraction (numerato, denominato).Reduce ();
}
private Fraction Reduce()
{
int gcd = Gcd (numerator, denominator);
numerator = numerator / gcd;
denominator = denominator / gcd;
return this;
}
还有另一种方法
public static Fraction operator * (Fraction fract1, Fraction fract2)
{
int numerato = fract1.numerator * fract2.numerator;
int denominato = fract1.denominator * fract2.denominator;
Fraction f = new Fraction (numerato, denominato);
f.Reduce ();
return f;
}
private void Reduce()
{
int gcd = Gcd (numerator, denominator);
numerator = numerator / gcd;
denominator = denominator / gcd;
}