【发布时间】:2011-11-26 00:13:48
【问题描述】:
public class Number {
private int numerator;
private int denominator;
public Number(int numerator, int denominator) {
this.numerator = numerator;
this.denominator = denominator;
}
public Number() {
this.numerator = 0;
this.denominator = 1;
}
public int getDenominator() {
return denominator;
}
public int getNumerator() {
return numerator;
}
public String toString() {
if (numerator == 0) {
return "0";
} else if (denominator == 1) {
return denominator + "";
}
return numerator + "/" + denominator;
}
public Number subtract(Number other) {
numerator = (this.getNumerator() * other.getDenominator()) - (other.getNumerator() * this.getDenominator());
denominator = this.getDenominator() * other.getDenominator();
return this;
}
////
public class test {
public static void main(String[] args) {
Number n1 = new Number(1, 2);
Number n2 = new Number(3, 5);
Number n4 = new Number(7, 40);
Number test = n2.subtract(n1);
System.out.println(test);
Number test2 = n4.subtract(n1);
System.out.println(test2);
Number test3 = n1.subtract(n4);
System.out.println(test3);
Number test4 = n2.subtract(n1);
System.out.println(test4);
}
}
我在使用 Number minus() 方法时遇到问题。当我从客户端调用它时,它有时会起作用,但经过几次连续调用后,我得到了意想不到的输出。前两个电话工作正常,然后我开始得到很差的结果。我知道我在 subtract() 方法中遗漏了一些东西,只是不确定它是什么。
任何帮助将不胜感激。
【问题讨论】:
-
当你减去分数时,你不会减去分母。此外,您还需要公分母来执行减法。
-
请编辑您的标题以使其更具信息性。
-
用一个例子来说明 user1060350 的答案:2/2(又名 1)-1/1(又名 1)是否等于 1/1(又一个)?还是 1 - 1 = 0?
-
我更新了代码以反映不正确的数学,但我仍然遇到与以前相同的问题。
标签: java