Exemple #1
0
  protected static Rational average(Rational r1, Rational r2) {
    long d1 = r1.getDenominator();
    long d2 = r2.getDenominator();

    Rational f1 = new Rational(r1.getNumerator() * d2, r1.getDenominator() * d2);
    Rational f2 = new Rational(r2.getNumerator() * d1, r2.getDenominator() * d1);

    return new Rational((f1.getNumerator() + f2.getNumerator()) / 2, f1.getDenominator());
  }
 @Override
 // Comparison between the 2 objects
 // Cross multiplies the rationals and checks the numerator and denominator values
 public int compare(Rational o1, Rational o2) {
   int lhs = o1.getNumerator() * o2.getDenominator();
   int rhs = o1.getDenominator() * o2.getNumerator();
   if (lhs < rhs) return -1; // rhs is greater than lhs --> r is less than current Rational
   else if (lhs > rhs) return 1; // lhs is greater than rhs --> r is greater than current Rational
   else return 0; // lhs and rhs are both equal --> Rationals are equal
 }
Exemple #3
0
 public static void main(String args[]) {
   Rational zero = new Rational(), half = new Rational(1, 2), halfCopy = new Rational(half);
   zero.setNumerator(1);
   zero.setDenominator(3);
   System.out.println("zero's numerator: " + zero.getNumerator());
   System.out.println("zero's denominator: " + zero.getDenominator());
   halfCopy.addWith(half);
   System.out.println("halfCopy:" + halfCopy);
 }