Class MathContext

java.lang.Object
java.math.MathContext
All Implemented Interfaces:
Serializable

public final classMathContextextendsObjectimplementsSerializable
Immutable objects which encapsulate the context settings which describe certain rules for numerical operators, such as those implemented by theBigDecimal class.

The base-independent settings are:

  1. precision: the number of digits to be used for an operation; results are rounded to this precision
  2. roundingMode: aRoundingMode object which specifies the algorithm to be used for rounding.

Since:
1.5
External Specifications
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static finalMathContext
    AMathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN.
    static finalMathContext
    AMathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN.
    static finalMathContext
    AMathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN.
    static finalMathContext
    AMathContext object whose settings have the values required for unlimited precision arithmetic.
  • Constructor Summary

    Constructors
    Constructor
    Description
    MathContext(int setPrecision)
    Constructs a newMathContext with the specified precision and theHALF_UP rounding mode.
    MathContext(int setPrecision,RoundingMode setRoundingMode)
    Constructs a newMathContext with a specified precision and rounding mode.
    Constructs a newMathContext from a string.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Compares thisMathContext with the specifiedObject for equality.
    int
    Returns theprecision setting.
    Returns the roundingMode setting.
    int
    Returns the hash code for thisMathContext.
    Returns the string representation of thisMathContext.

    Methods declared in class java.lang.Object

    clone,finalize,getClass,notify,notifyAll,wait,wait,wait
  • Field Details

    • UNLIMITED

      public static final MathContext UNLIMITED
      AMathContext object whose settings have the values required for unlimited precision arithmetic. The values of the settings are:precision=0 roundingMode=HALF_UP
    • DECIMAL32

      public static final MathContext DECIMAL32
      AMathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN. Note the exponent range of decimal32 (min exponent of -95, max exponent of 96) isnot used for rounding.
    • DECIMAL64

      public static final MathContext DECIMAL64
      AMathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN. Note the exponent range of decimal64 (min exponent of -383, max exponent of 384) isnot used for rounding.
    • DECIMAL128

      public static final MathContext DECIMAL128
      AMathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN. Note the exponent range of decimal128 (min exponent of -6143, max exponent of 6144) isnot used for rounding.
  • Constructor Details

    • MathContext

      public MathContext(int setPrecision)
      Constructs a newMathContext with the specified precision and theHALF_UP rounding mode.
      Parameters:
      setPrecision - The non-negativeint precision setting.
      Throws:
      IllegalArgumentException - if thesetPrecision parameter is less than zero.
    • MathContext

      public MathContext(int setPrecision,RoundingMode setRoundingMode)
      Constructs a newMathContext with a specified precision and rounding mode.
      Parameters:
      setPrecision - The non-negativeint precision setting.
      setRoundingMode - The rounding mode to use.
      Throws:
      IllegalArgumentException - if thesetPrecision parameter is less than zero.
      NullPointerException - if the rounding mode argument isnull
    • MathContext

      public MathContext(String val)
      Constructs a newMathContext from a string. The string must be in the same format as that produced by thetoString() method.

      AnIllegalArgumentException is thrown if the precision section of the string is out of range (< 0) or the string is not in the format created by thetoString() method.

      Parameters:
      val - The string to be parsed
      Throws:
      IllegalArgumentException - if the precision section is out of range or of incorrect format
      NullPointerException - if the argument isnull
  • Method Details

    • getPrecision

      public int getPrecision()
      Returns theprecision setting. This value is always non-negative.
      Returns:
      anint which is the value of theprecision setting
    • getRoundingMode

      public RoundingMode getRoundingMode()
      Returns:
      aRoundingMode object which is the value of theroundingMode setting
    • equals

      public boolean equals(Object x)
      Compares thisMathContext with the specifiedObject for equality.
      Overrides:
      equals in class Object
      Parameters:
      x -Object to which thisMathContext is to be compared.
      Returns:
      true if and only if the specifiedObject is aMathContext object which has exactly the same settings as this object
      See Also:
    • hashCode

      public int hashCode()
      Returns the hash code for thisMathContext.
      Overrides:
      hashCode in class Object
      Returns:
      hash code for thisMathContext
      See Also:
    • toString

      public String toString()
      Returns the string representation of thisMathContext. TheString returned represents the settings of theMathContext object as two space-delimited words (separated by a single space character,'\u0020', and with no leading or trailing white space), as follows:
      1. The string"precision=", immediately followed by the value of the precision setting as a numeric string as if generated by theInteger.toString method.
      2. The string"roundingMode=", immediately followed by the value of theroundingMode setting as a word. This word will be the same as the name of the corresponding public constant in theRoundingMode enum.

      For example:

       precision=9 roundingMode=HALF_UP
      Additional words may be appended to the result oftoString in the future if more properties are added to this class.

      Overrides:
      toString in class Object
      Returns:
      aString representing the context settings