Advertisement
Lusien_Lashans

Rational Value

Dec 11th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1. package calculator.datatypes.rational;
  2.  
  3. import calculator.AbstractValue;
  4. import calculator.DivisionByZeroException;
  5. import calculator.OperationNotSupportedException;
  6.  
  7. public class RationalValue extends AbstractValue {
  8.     private int numerator;
  9.     private int denominator;
  10.  
  11.     public RationalValue(int numerator, int denominator) {
  12.  
  13.         this.numerator = numerator;
  14.  
  15.         if (denominator != 0) {
  16.             this.denominator = denominator;
  17.         }
  18.         else {
  19.             throw new IllegalArgumentException("Division by zero");
  20.         }
  21.     }
  22.  
  23.     @Override
  24.     public AbstractValue add(AbstractValue operand) throws OperationNotSupportedException {
  25.         int num = ((RationalValue)operand).numerator;
  26.         int denom = ((RationalValue)operand).denominator;
  27.  
  28.         return new RationalValue( numerator*denom + num*denominator , denominator*denom );
  29.     }
  30.  
  31.     @Override
  32.     public AbstractValue sub(AbstractValue operand) throws OperationNotSupportedException {
  33.         int num = ((RationalValue)operand).numerator;
  34.         int denom = ((RationalValue)operand).denominator;
  35.  
  36.         return new RationalValue( numerator*denom - num*denominator , denominator*denom );
  37.     }
  38.  
  39.     @Override
  40.     public AbstractValue mul(AbstractValue operand) throws OperationNotSupportedException {
  41.         int num = ((RationalValue)operand).numerator;
  42.         int denom = ((RationalValue)operand).denominator;
  43.  
  44.         return new RationalValue( numerator*num, denominator*denom );
  45.     }
  46.  
  47.     @Override
  48.     public AbstractValue div(AbstractValue operand) throws DivisionByZeroException, OperationNotSupportedException {
  49.         int num = ((RationalValue)operand).numerator;
  50.         int denom = ((RationalValue)operand).denominator;
  51.  
  52.         return new RationalValue( numerator*denom, denominator*num );
  53.     }
  54.  
  55.     @Override
  56.     public String toString() {
  57.         return Double.toString(numerator) + "/" + Double.toString(denominator);
  58.     }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement