org.apache.commons.math.util

## Class BigReal

- java.lang.Object
- - org.apache.commons.math.util.BigReal

All Implemented Interfaces:
  Serializable, Comparable<BigReal>, FieldElement<BigReal>

    public class BigReal
    extends Object
    implements FieldElement<BigReal>, Comparable<BigReal>, Serializable

Arbitrary precision decimal number.

This class is a simple wrapper around the standard `BigDecimal` in order to implement the `FieldElement` interface.

Since:
  2.0
Version:
  $Revision: 925812 $ $Date: 2010-03-21 16:49:31 +0100 (dim. 21 mars 2010) $
See Also:
  Serialized Form

### Field Summary

Fields
`private BigDecimal` `d` Underlying BigDecimal.
`static BigReal` `ONE` A big real representing 1.
`private RoundingMode` `roundingMode` Rounding mode for divisions.
`private int` `scale` BigDecimal scale
`private static long` `serialVersionUID` Serializable version identifier.
`static BigReal` `ZERO` A big real representing 0.

### Constructor Summary

Constructors
Constructor and Description
`BigReal(BigDecimal val)` Build an instance from a BigDecimal.
`BigReal(BigInteger val)` Build an instance from a BigInteger.
`BigReal(BigInteger unscaledVal, int scale)` Build an instance from an unscaled BigInteger.
`BigReal(BigInteger unscaledVal, int scale, MathContext mc)` Build an instance from an unscaled BigInteger.
`BigReal(BigInteger val, MathContext mc)` Build an instance from a BigInteger.
`BigReal(char[] in)` Build an instance from a characters representation.
`BigReal(char[] in, int offset, int len)` Build an instance from a characters representation.
`BigReal(char[] in, int offset, int len, MathContext mc)` Build an instance from a characters representation.
`BigReal(char[] in, MathContext mc)` Build an instance from a characters representation.
`BigReal(double val)` Build an instance from a double.
`BigReal(double val, MathContext mc)` Build an instance from a double.
`BigReal(int val)` Build an instance from an int.
`BigReal(int val, MathContext mc)` Build an instance from an int.
`BigReal(long val)` Build an instance from a long.
`BigReal(long val, MathContext mc)` Build an instance from a long.
`BigReal(String val)` Build an instance from a String representation.
`BigReal(String val, MathContext mc)` Build an instance from a String representation.

### Method Summary

Methods
`BigReal` `add(BigReal a)` Compute this + a.
`BigDecimal` `bigDecimalValue()` Get the BigDecimal value corresponding to the instance.
`int` `compareTo(BigReal a)`
`BigReal` `divide(BigReal a)` Compute this ÷ a.
`double` `doubleValue()` Get the double value corresponding to the instance.
`boolean` `equals(Object other)`
`Field<BigReal>` `getField()` Get the `Field` to which the instance belongs.
`RoundingMode` `getRoundingMode()` Gets the rounding mode for division operations The default is `RoundingMode.HALF_UP`
`int` `getScale()` Sets the scale for division operations.
`int` `hashCode()`
`BigReal` `multiply(BigReal a)` Compute this × a.
`void` `setRoundingMode(RoundingMode roundingMode)` Sets the rounding mode for decimal divisions.
`void` `setScale(int scale)` Sets the scale for division operations.
`BigReal` `subtract(BigReal a)` Compute this - a.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### ZERO

    public static final BigReal ZERO

A big real representing 0.

#### ONE

    public static final BigReal ONE

A big real representing 1.

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier.

See Also:
  Constant Field Values

#### d

    private final BigDecimal d

Underlying BigDecimal.

#### roundingMode

    private RoundingMode roundingMode

Rounding mode for divisions.

#### scale

    private int scale

BigDecimal scale

### Constructor Detail

#### BigReal

    public BigReal(BigDecimal val)

Build an instance from a BigDecimal.

Parameters:
  `val` - value of the instance

#### BigReal

    public BigReal(BigInteger val)

Build an instance from a BigInteger.

Parameters:
  `val` - value of the instance

#### BigReal

    public BigReal(BigInteger unscaledVal,
           int scale)

Build an instance from an unscaled BigInteger.

Parameters:
  `unscaledVal` - unscaled value
  `scale` - scale to use

#### BigReal

    public BigReal(BigInteger unscaledVal,
           int scale,
           MathContext mc)

Build an instance from an unscaled BigInteger.

Parameters:
  `unscaledVal` - unscaled value
  `scale` - scale to use
  `mc` - to used

#### BigReal

    public BigReal(BigInteger val,
           MathContext mc)

Build an instance from a BigInteger.

Parameters:
  `val` - value of the instance
  `mc` - context to use

#### BigReal

    public BigReal(char[] in)

Build an instance from a characters representation.

Parameters:
  `in` - character representation of the value

#### BigReal

    public BigReal(char[] in,
           int offset,
           int len)

Build an instance from a characters representation.

Parameters:
  `in` - character representation of the value
  `offset` - offset of the first character to analyze
  `len` - length of the array slice to analyze

#### BigReal

    public BigReal(char[] in,
           int offset,
           int len,
           MathContext mc)

Build an instance from a characters representation.

Parameters:
  `in` - character representation of the value
  `offset` - offset of the first character to analyze
  `len` - length of the array slice to analyze
  `mc` - context to use

#### BigReal

    public BigReal(char[] in,
           MathContext mc)

Build an instance from a characters representation.

Parameters:
  `in` - character representation of the value
  `mc` - context to use

#### BigReal

    public BigReal(double val)

Build an instance from a double.

Parameters:
  `val` - value of the instance

#### BigReal

    public BigReal(double val,
           MathContext mc)

Build an instance from a double.

Parameters:
  `val` - value of the instance
  `mc` - context to use

#### BigReal

    public BigReal(int val)

Build an instance from an int.

Parameters:
  `val` - value of the instance

#### BigReal

    public BigReal(int val,
           MathContext mc)

Build an instance from an int.

Parameters:
  `val` - value of the instance
  `mc` - context to use

#### BigReal

    public BigReal(long val)

Build an instance from a long.

Parameters:
  `val` - value of the instance

#### BigReal

    public BigReal(long val,
           MathContext mc)

Build an instance from a long.

Parameters:
  `val` - value of the instance
  `mc` - context to use

#### BigReal

    public BigReal(String val)

Build an instance from a String representation.

Parameters:
  `val` - character representation of the value

#### BigReal

    public BigReal(String val,
           MathContext mc)

Build an instance from a String representation.

Parameters:
  `val` - character representation of the value
  `mc` - context to use

### Method Detail

#### getRoundingMode

    public RoundingMode getRoundingMode()

Gets the rounding mode for division operations The default is `RoundingMode.HALF_UP`

Returns:
  the rounding mode.
Since:
  2.1

#### setRoundingMode

    public void setRoundingMode(RoundingMode roundingMode)

Sets the rounding mode for decimal divisions.

Parameters:
  `roundingMode` - rounding mode for decimal divisions
Since:
  2.1

#### getScale

    public int getScale()

Sets the scale for division operations. The default is 64

Returns:
  the scale
Since:
  2.1

#### setScale

    public void setScale(int scale)

Sets the scale for division operations.

Parameters:
  `scale` - scale for division operations
Since:
  2.1

#### add

    public BigReal add(BigReal a)

Compute this + a.

Specified by:
  `add` in interface `FieldElement<BigReal>`
Parameters:
  `a` - element to add
Returns:
  a new element representing this + a

#### subtract

    public BigReal subtract(BigReal a)

Compute this - a.

Specified by:
  `subtract` in interface `FieldElement<BigReal>`
Parameters:
  `a` - element to subtract
Returns:
  a new element representing this - a

#### divide

    public BigReal divide(BigReal a)
                   throws ArithmeticException

Compute this ÷ a.

Specified by:
  `divide` in interface `FieldElement<BigReal>`
Parameters:
  `a` - element to add
Returns:
  a new element representing this ÷ a
Throws:
  `ArithmeticException` - if a is the zero of the additive operation (i.e. additive identity)

#### multiply

    public BigReal multiply(BigReal a)

Compute this × a.

Specified by:
  `multiply` in interface `FieldElement<BigReal>`
Parameters:
  `a` - element to multiply
Returns:
  a new element representing this × a

#### compareTo

    public int compareTo(BigReal a)

Specified by:
  `compareTo` in interface `Comparable<BigReal>`

#### doubleValue

    public double doubleValue()

Get the double value corresponding to the instance.

Returns:
  double value corresponding to the instance

#### bigDecimalValue

    public BigDecimal bigDecimalValue()

Get the BigDecimal value corresponding to the instance.

Returns:
  BigDecimal value corresponding to the instance

#### equals

    public boolean equals(Object other)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### getField

    public Field<BigReal> getField()

Get the `Field` to which the instance belongs.

Specified by:
  `getField` in interface `FieldElement<BigReal>`
Returns:
  `Field` to which the instance belongs