## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# 8.1. Using Fractions

## Problem

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.

## Solution

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( )`.

## Discussion

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 ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required