## Uses of Class
java.math.MathContext

- Packages that use MathContext
  Package | Description
  --- | ---
  java.math | Provides classes for performing arbitrary-precision integer arithmetic (`BigInteger`) and arbitrary-precision decimal arithmetic (`BigDecimal`).

- - ### Uses of MathContext in java.math

    Fields in java.math declared as MathContext
    Modifier and Type | Field | Description
    --- | --- | ---
    `static MathContext` | MathContext.`DECIMAL128` | A `MathContext` object with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode of `HALF_EVEN`, the IEEE 754R default.
    `static MathContext` | MathContext.`DECIMAL32` | A `MathContext` object with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode of `HALF_EVEN`, the IEEE 754R default.
    `static MathContext` | MathContext.`DECIMAL64` | A `MathContext` object with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode of `HALF_EVEN`, the IEEE 754R default.
    `static MathContext` | MathContext.`UNLIMITED` | A `MathContext` object whose settings have the values required for unlimited precision arithmetic.

    Methods in java.math with parameters of type MathContext
    Modifier and Type | Method | Description
    --- | --- | ---
    `BigDecimal` | BigDecimal.`abs​(MathContext mc)` | Returns a `BigDecimal` whose value is the absolute value of this `BigDecimal`, with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`add​(BigDecimal augend, MathContext mc)` | Returns a `BigDecimal` whose value is `(this + augend)`, with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`divide​(BigDecimal divisor, MathContext mc)` | Returns a `BigDecimal` whose value is `(this / divisor)`, with rounding according to the context settings.
    `BigDecimal[]` | BigDecimal.`divideAndRemainder​(BigDecimal divisor, MathContext mc)` | Returns a two-element `BigDecimal` array containing the result of `divideToIntegralValue` followed by the result of `remainder` on the two operands calculated with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`divideToIntegralValue​(BigDecimal divisor, MathContext mc)` | Returns a `BigDecimal` whose value is the integer part of `(this / divisor)`.
    `BigDecimal` | BigDecimal.`multiply​(BigDecimal multiplicand, MathContext mc)` | Returns a `BigDecimal` whose value is `(this × multiplicand)`, with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`negate​(MathContext mc)` | Returns a `BigDecimal` whose value is `(-this)`, with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`plus​(MathContext mc)` | Returns a `BigDecimal` whose value is `(+this)`, with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`pow​(int n, MathContext mc)` | Returns a `BigDecimal` whose value is `(thisn)`.
    `BigDecimal` | BigDecimal.`remainder​(BigDecimal divisor, MathContext mc)` | Returns a `BigDecimal` whose value is `(this % divisor)`, with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`round​(MathContext mc)` | Returns a `BigDecimal` rounded according to the `MathContext` settings.
    `BigDecimal` | BigDecimal.`sqrt​(MathContext mc)` | Returns an approximation to the square root of `this` with rounding according to the context settings.
    `BigDecimal` | BigDecimal.`subtract​(BigDecimal subtrahend, MathContext mc)` | Returns a `BigDecimal` whose value is `(this - subtrahend)`, with rounding according to the context settings.

    Constructors in java.math with parameters of type MathContext
    Constructor | Description
    --- | ---
    `BigDecimal​(char[] in, int offset, int len, MathContext mc)` | Translates a character array representation of a `BigDecimal` into a `BigDecimal`, accepting the same sequence of characters as the `BigDecimal(String)` constructor, while allowing a sub-array to be specified and with rounding according to the context settings.
    `BigDecimal​(char[] in, MathContext mc)` | Translates a character array representation of a `BigDecimal` into a `BigDecimal`, accepting the same sequence of characters as the `BigDecimal(String)` constructor and with rounding according to the context settings.
    `BigDecimal​(double val, MathContext mc)` | Translates a `double` into a `BigDecimal`, with rounding according to the context settings.
    `BigDecimal​(int val, MathContext mc)` | Translates an `int` into a `BigDecimal`, with rounding according to the context settings.
    `BigDecimal​(long val, MathContext mc)` | Translates a `long` into a `BigDecimal`, with rounding according to the context settings.
    `BigDecimal​(String val, MathContext mc)` | Translates the string representation of a `BigDecimal` into a `BigDecimal`, accepting the same strings as the `BigDecimal(String)` constructor, with rounding according to the context settings.
    `BigDecimal​(BigInteger unscaledVal, int scale, MathContext mc)` | Translates a `BigInteger` unscaled value and an `int` scale into a `BigDecimal`, with rounding according to the context settings.
    `BigDecimal​(BigInteger val, MathContext mc)` | Translates a `BigInteger` into a `BigDecimal` rounding according to the context settings.