gpt4 book ai didi

java - 有理类 - 无法约简分数和除法

转载 作者:行者123 更新时间:2023-11-30 07:05:46 25 4
gpt4 key购买 nike

我的 Rational 类应该进行分数加、减、乘和除操作,因此当在主类中调用时,它将执行这些操作。但是,我似乎无法正确减少我的分数(gcd)以获得正确的答案,并且除法方法根本没有运行(我收到一条错误消息):

线程“main”中的异常 java.lang.ArithmeticException:/为零 在 Rational.division(Project1.java:45) 在 Project1.main(Project1.java:12)

如何解决这些问题?谢谢

公共(public)类项目1{

public static void main(String[] args) {

Rational a = new Rational (6, 12);
Rational b = new Rational (8, 9);

System.out.println(a + " + " + b + " = " + a.add(b));
System.out.println(a + " - " + b + " = " + a.subtraction(b));
System.out.println(a + " * " + b + " = " + a.multiply(b));
System.out.println(a + " / " + b + " = " + a.division(b));
}

}

理性类{

private int numerator, denominator;

public Rational(int num, int denom) {
numerator = num;
denominator = denom;
}
public Rational gcd() {
while (numerator != denominator)
{
if (numerator > denominator)
numerator = numerator - denominator;
else
denominator = denominator - numerator;
}
return new Rational(numerator, denominator);
}

public Rational add(Rational o) {
return new Rational (numerator + o.numerator, denominator +o.denominator);
}

public Rational conjugate() {
return new Rational (numerator, - denominator);
}

public Rational division(Rational o) {
return new Rational ((numerator/denominator) / (numerator/denominator), denominator);
}

public Rational multiply(Rational o) {
return new Rational (numerator * o.numerator, denominator * o.denominator);
}

public Rational subtraction(Rational o) {
return new Rational (numerator - o.numerator, denominator - o.denominator);
}

public String toString() {
return (numerator + "/" + denominator);
}

}

最佳答案

您遇到的问题在这里:

public Rational division(Rational o) {
return new Rational ((numerator/denominator) / (numerator/denominator), denominator);
}

当您运行代码时,您会执行以下操作:

(6/12)/(6/12)

括号中的 (6/12) 都向下转换为 0,因此最终会下降 0,这是不允许的。

我建议使用 System.out.println() 调试代码以查看哪里出错了。但错误非常明显,你除以 0。

关于java - 有理类 - 无法约简分数和除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40160891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com