Class Fraction

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable

    @Deprecated(since="2021-04-30")
    public final class Fraction
    extends java.lang.Number
    implements java.lang.Comparable
    Deprecated.
    Commons Lang 2 is in maintenance mode. Commons Lang 3 should be used instead.

    Fraction is a Number implementation that stores fractions accurately.

    This class is immutable, and interoperable with most methods that accept a Number.

    Since:
    2.0
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      Fraction abs()
      Deprecated.
      Gets a fraction that is the positive equivalent of this one.
      Fraction add​(Fraction fraction)
      Deprecated.
      Adds the value of this fraction to another, returning the result in reduced form.
      int compareTo​(java.lang.Object object)
      Deprecated.
      Compares this object to another based on size.
      Fraction divideBy​(Fraction fraction)
      Deprecated.
      Divide the value of this fraction by another.
      double doubleValue()
      Deprecated.
      Gets the fraction as a double.
      boolean equals​(java.lang.Object obj)
      Deprecated.
      Compares this fraction to another object to test if they are equal.
      float floatValue()
      Deprecated.
      Gets the fraction as a float.
      int getDenominator()
      Deprecated.
      Gets the denominator part of the fraction.
      static Fraction getFraction​(double value)
      Deprecated.
      Creates a Fraction instance from a double value.
      static Fraction getFraction​(int numerator, int denominator)
      Deprecated.
      Creates a Fraction instance with the 2 parts of a fraction Y/Z.
      static Fraction getFraction​(int whole, int numerator, int denominator)
      Deprecated.
      Creates a Fraction instance with the 3 parts of a fraction X Y/Z.
      static Fraction getFraction​(java.lang.String str)
      Deprecated.
      Creates a Fraction from a String.
      int getNumerator()
      Deprecated.
      Gets the numerator part of the fraction.
      int getProperNumerator()
      Deprecated.
      Gets the proper numerator, always positive.
      int getProperWhole()
      Deprecated.
      Gets the proper whole part of the fraction.
      static Fraction getReducedFraction​(int numerator, int denominator)
      Deprecated.
      Creates a reduced Fraction instance with the 2 parts of a fraction Y/Z.
      int hashCode()
      Deprecated.
      Gets a hashCode for the fraction.
      int intValue()
      Deprecated.
      Gets the fraction as an int.
      Fraction invert()
      Deprecated.
      Gets a fraction that is the inverse (1/fraction) of this one.
      long longValue()
      Deprecated.
      Gets the fraction as a long.
      Fraction multiplyBy​(Fraction fraction)
      Deprecated.
      Multiplies the value of this fraction by another, returning the result in reduced form.
      Fraction negate()
      Deprecated.
      Gets a fraction that is the negative (-fraction) of this one.
      Fraction pow​(int power)
      Deprecated.
      Gets a fraction that is raised to the passed in power.
      Fraction reduce()
      Deprecated.
      Reduce the fraction to the smallest values for the numerator and denominator, returning the result.
      Fraction subtract​(Fraction fraction)
      Deprecated.
      Subtracts the value of another fraction from the value of this one, returning the result in reduced form.
      java.lang.String toProperString()
      Deprecated.
      Gets the fraction as a proper String in the format X Y/Z.
      java.lang.String toString()
      Deprecated.
      Gets the fraction as a String.
      • Methods inherited from class java.lang.Number

        byteValue, shortValue
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • ZERO

        public static final Fraction ZERO
        Deprecated.
        Fraction representation of 0.
      • ONE

        public static final Fraction ONE
        Deprecated.
        Fraction representation of 1.
      • ONE_HALF

        public static final Fraction ONE_HALF
        Deprecated.
        Fraction representation of 1/2.
      • ONE_THIRD

        public static final Fraction ONE_THIRD
        Deprecated.
        Fraction representation of 1/3.
      • TWO_THIRDS

        public static final Fraction TWO_THIRDS
        Deprecated.
        Fraction representation of 2/3.
      • ONE_QUARTER

        public static final Fraction ONE_QUARTER
        Deprecated.
        Fraction representation of 1/4.
      • TWO_QUARTERS

        public static final Fraction TWO_QUARTERS
        Deprecated.
        Fraction representation of 2/4.
      • THREE_QUARTERS

        public static final Fraction THREE_QUARTERS
        Deprecated.
        Fraction representation of 3/4.
      • ONE_FIFTH

        public static final Fraction ONE_FIFTH
        Deprecated.
        Fraction representation of 1/5.
      • TWO_FIFTHS

        public static final Fraction TWO_FIFTHS
        Deprecated.
        Fraction representation of 2/5.
      • THREE_FIFTHS

        public static final Fraction THREE_FIFTHS
        Deprecated.
        Fraction representation of 3/5.
      • FOUR_FIFTHS

        public static final Fraction FOUR_FIFTHS
        Deprecated.
        Fraction representation of 4/5.
    • Method Detail

      • getFraction

        public static Fraction getFraction​(int numerator,
                                           int denominator)
        Deprecated.

        Creates a Fraction instance with the 2 parts of a fraction Y/Z.

        Any negative signs are resolved to be on the numerator.

        Parameters:
        numerator - the numerator, for example the three in 'three sevenths'
        denominator - the denominator, for example the seven in 'three sevenths'
        Returns:
        a new fraction instance
        Throws:
        java.lang.ArithmeticException - if the denomiator is zero
      • getFraction

        public static Fraction getFraction​(int whole,
                                           int numerator,
                                           int denominator)
        Deprecated.

        Creates a Fraction instance with the 3 parts of a fraction X Y/Z.

        The negative sign must be passed in on the whole number part.

        Parameters:
        whole - the whole number, for example the one in 'one and three sevenths'
        numerator - the numerator, for example the three in 'one and three sevenths'
        denominator - the denominator, for example the seven in 'one and three sevenths'
        Returns:
        a new fraction instance
        Throws:
        java.lang.ArithmeticException - if the denomiator is zero
        java.lang.ArithmeticException - if the denominator is negative
        java.lang.ArithmeticException - if the numerator is negative
        java.lang.ArithmeticException - if the resulting numerator exceeds Integer.MAX_VALUE
      • getReducedFraction

        public static Fraction getReducedFraction​(int numerator,
                                                  int denominator)
        Deprecated.

        Creates a reduced Fraction instance with the 2 parts of a fraction Y/Z.

        For example, if the input parameters represent 2/4, then the created fraction will be 1/2.

        Any negative signs are resolved to be on the numerator.

        Parameters:
        numerator - the numerator, for example the three in 'three sevenths'
        denominator - the denominator, for example the seven in 'three sevenths'
        Returns:
        a new fraction instance, with the numerator and denominator reduced
        Throws:
        java.lang.ArithmeticException - if the denominator is zero
      • getFraction

        public static Fraction getFraction​(double value)
        Deprecated.

        Creates a Fraction instance from a double value.

        This method uses the continued fraction algorithm, computing a maximum of 25 convergents and bounding the denominator by 10,000.

        Parameters:
        value - the double value to convert
        Returns:
        a new fraction instance that is close to the value
        Throws:
        java.lang.ArithmeticException - if |value| > Integer.MAX_VALUE or value = NaN
        java.lang.ArithmeticException - if the calculated denominator is zero
        java.lang.ArithmeticException - if the the algorithm does not converge
      • getFraction

        public static Fraction getFraction​(java.lang.String str)
        Deprecated.

        Creates a Fraction from a String.

        The formats accepted are:

        1. double String containing a dot
        2. 'X Y/Z'
        3. 'Y/Z'
        4. 'X' (a simple whole number)
        and a .

        Parameters:
        str - the string to parse, must not be null
        Returns:
        the new Fraction instance
        Throws:
        java.lang.IllegalArgumentException - if the string is null
        java.lang.NumberFormatException - if the number format is invalid
      • getNumerator

        public int getNumerator()
        Deprecated.

        Gets the numerator part of the fraction.

        This method may return a value greater than the denominator, an improper fraction, such as the seven in 7/4.

        Returns:
        the numerator fraction part
      • getDenominator

        public int getDenominator()
        Deprecated.

        Gets the denominator part of the fraction.

        Returns:
        the denominator fraction part
      • getProperNumerator

        public int getProperNumerator()
        Deprecated.

        Gets the proper numerator, always positive.

        An improper fraction 7/4 can be resolved into a proper one, 1 3/4. This method returns the 3 from the proper fraction.

        If the fraction is negative such as -7/4, it can be resolved into -1 3/4, so this method returns the positive proper numerator, 3.

        Returns:
        the numerator fraction part of a proper fraction, always positive
      • getProperWhole

        public int getProperWhole()
        Deprecated.

        Gets the proper whole part of the fraction.

        An improper fraction 7/4 can be resolved into a proper one, 1 3/4. This method returns the 1 from the proper fraction.

        If the fraction is negative such as -7/4, it can be resolved into -1 3/4, so this method returns the positive whole part -1.

        Returns:
        the whole fraction part of a proper fraction, that includes the sign
      • intValue

        public int intValue()
        Deprecated.

        Gets the fraction as an int. This returns the whole number part of the fraction.

        Specified by:
        intValue in class java.lang.Number
        Returns:
        the whole number fraction part
      • longValue

        public long longValue()
        Deprecated.

        Gets the fraction as a long. This returns the whole number part of the fraction.

        Specified by:
        longValue in class java.lang.Number
        Returns:
        the whole number fraction part
      • floatValue

        public float floatValue()
        Deprecated.

        Gets the fraction as a float. This calculates the fraction as the numerator divided by denominator.

        Specified by:
        floatValue in class java.lang.Number
        Returns:
        the fraction as a float
      • doubleValue

        public double doubleValue()
        Deprecated.

        Gets the fraction as a double. This calculates the fraction as the numerator divided by denominator.

        Specified by:
        doubleValue in class java.lang.Number
        Returns:
        the fraction as a double
      • reduce

        public Fraction reduce()
        Deprecated.

        Reduce the fraction to the smallest values for the numerator and denominator, returning the result.

        For example, if this fraction represents 2/4, then the result will be 1/2.

        Returns:
        a new reduced fraction instance, or this if no simplification possible
      • invert

        public Fraction invert()
        Deprecated.

        Gets a fraction that is the inverse (1/fraction) of this one.

        The returned fraction is not reduced.

        Returns:
        a new fraction instance with the numerator and denominator inverted.
        Throws:
        java.lang.ArithmeticException - if the fraction represents zero.
      • negate

        public Fraction negate()
        Deprecated.

        Gets a fraction that is the negative (-fraction) of this one.

        The returned fraction is not reduced.

        Returns:
        a new fraction instance with the opposite signed numerator
      • abs

        public Fraction abs()
        Deprecated.

        Gets a fraction that is the positive equivalent of this one.

        More precisely: (fraction >= 0 ? this : -fraction)

        The returned fraction is not reduced.

        Returns:
        this if it is positive, or a new positive fraction instance with the opposite signed numerator
      • pow

        public Fraction pow​(int power)
        Deprecated.

        Gets a fraction that is raised to the passed in power.

        The returned fraction is in reduced form.

        Parameters:
        power - the power to raise the fraction to
        Returns:
        this if the power is one, ONE if the power is zero (even if the fraction equals ZERO) or a new fraction instance raised to the appropriate power
        Throws:
        java.lang.ArithmeticException - if the resulting numerator or denominator exceeds Integer.MAX_VALUE
      • add

        public Fraction add​(Fraction fraction)
        Deprecated.

        Adds the value of this fraction to another, returning the result in reduced form. The algorithm follows Knuth, 4.5.1.

        Parameters:
        fraction - the fraction to add, must not be null
        Returns:
        a Fraction instance with the resulting values
        Throws:
        java.lang.IllegalArgumentException - if the fraction is null
        java.lang.ArithmeticException - if the resulting numerator or denominator exceeds Integer.MAX_VALUE
      • subtract

        public Fraction subtract​(Fraction fraction)
        Deprecated.

        Subtracts the value of another fraction from the value of this one, returning the result in reduced form.

        Parameters:
        fraction - the fraction to subtract, must not be null
        Returns:
        a Fraction instance with the resulting values
        Throws:
        java.lang.IllegalArgumentException - if the fraction is null
        java.lang.ArithmeticException - if the resulting numerator or denominator cannot be represented in an int.
      • multiplyBy

        public Fraction multiplyBy​(Fraction fraction)
        Deprecated.

        Multiplies the value of this fraction by another, returning the result in reduced form.

        Parameters:
        fraction - the fraction to multiply by, must not be null
        Returns:
        a Fraction instance with the resulting values
        Throws:
        java.lang.IllegalArgumentException - if the fraction is null
        java.lang.ArithmeticException - if the resulting numerator or denominator exceeds Integer.MAX_VALUE
      • divideBy

        public Fraction divideBy​(Fraction fraction)
        Deprecated.

        Divide the value of this fraction by another.

        Parameters:
        fraction - the fraction to divide by, must not be null
        Returns:
        a Fraction instance with the resulting values
        Throws:
        java.lang.IllegalArgumentException - if the fraction is null
        java.lang.ArithmeticException - if the fraction to divide by is zero
        java.lang.ArithmeticException - if the resulting numerator or denominator exceeds Integer.MAX_VALUE
      • equals

        public boolean equals​(java.lang.Object obj)
        Deprecated.

        Compares this fraction to another object to test if they are equal.

        .

        To be equal, both values must be equal. Thus 2/4 is not equal to 1/2.

        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the reference object with which to compare
        Returns:
        true if this object is equal
      • hashCode

        public int hashCode()
        Deprecated.

        Gets a hashCode for the fraction.

        Overrides:
        hashCode in class java.lang.Object
        Returns:
        a hash code value for this object
      • compareTo

        public int compareTo​(java.lang.Object object)
        Deprecated.

        Compares this object to another based on size.

        Note: this class has a natural ordering that is inconsistent with equals, because, for example, equals treats 1/2 and 2/4 as different, whereas compareTo treats them as equal.

        Specified by:
        compareTo in interface java.lang.Comparable
        Parameters:
        object - the object to compare to
        Returns:
        -1 if this is less, 0 if equal, +1 if greater
        Throws:
        java.lang.ClassCastException - if the object is not a Fraction
        java.lang.NullPointerException - if the object is null
      • toString

        public java.lang.String toString()
        Deprecated.

        Gets the fraction as a String.

        The format used is 'numerator/denominator' always.

        Overrides:
        toString in class java.lang.Object
        Returns:
        a String form of the fraction
      • toProperString

        public java.lang.String toProperString()
        Deprecated.

        Gets the fraction as a proper String in the format X Y/Z.

        The format used in 'wholeNumber numerator/denominator'. If the whole number is zero it will be ommitted. If the numerator is zero, only the whole number is returned.

        Returns:
        a String form of the fraction