我想检查是否等于2的分数。我认为我写的方法不正确,因为可能会失去准确性。我是对还是错?

public boolean equals(Rational r) {
    return (double) numerator / denominator == (double) r.numerator / r.denominator;
}

最佳答案

我认为这样会更好:

public boolean equals(Rational r) {
  return numerator * r.denominator == r.numerator * denominator;
}

10-08 19:24