You need to work with fractions supplied by the user, such as 3 4/5 and 134/21. Your application needs to parse, multiply, and reduce fractions.

Use Jakarta Commons Lang’s
`Fraction`

class to parse and manipulate fractions.
The following code demonstrates the parsing of a
`String`

containing a fraction:

import org.apache.commons.lang.math.Fraction; String userInput = "23 31/37"; Fraction fraction = Fraction.getFraction( userInput ); double value = fraction.doubleValue( );

The `String`

“23
31/37” is converted to a `double`

value of `23.837837`

. A `Fraction`

object is created by calling the `Fraction.getFraction( )`

method, and `double`

value of the
`Fraction`

object is obtained with
`fraction.doubleValue( )`

.

The `Fraction`

class provides a number of operations
that can be used to simplify the following expression to an improper
fraction. The following code evaluates the expression in Figure 8-1 using `Fraction`

:

import org.apache.commons.lang.math.Fraction; Fraction numer1 = Fraction.getFraction( 3, 4 ); Fraction numer2 = Fraction.getFraction( 51, 3509 ); Fraction numerator = numer1.multiplyBy( numer2 ); Fraction denominator = Fraction.getFraction( 41, 59 ); Fraction fraction = numerator.divideBy( denominator ); Fraction result = fraction.reduce( ); System.out.println( "as Fraction: " + result.reduce( ).toString( ) ); System.out.println( "as double: " + result.doubleValue( ) );

Figure 8-1. Expression to be evaluated with Fraction

The previous example creates ...

Start Free Trial

No credit card required