Class MathContext
java.lang.Object
java.math.MathContext
- All Implemented Interfaces:
- Serializable
Immutable objects which encapsulate the context settings which
 describe certain rules for numerical operators, such as those
 implemented by the 
BigDecimal class.
 The base-independent settings are:
- precision: the number of digits to be used for an operation; results are rounded to this precision
- roundingMode: a- RoundingModeobject which specifies the algorithm to be used for rounding.
- Since:
- 1.5
- External Specifications
- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final MathContextAMathContextobject with a precision setting matching the precision of the IEEE 754-2019 decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN.static final MathContextAMathContextobject with a precision setting matching the precision of the IEEE 754-2019 decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN.static final MathContextAMathContextobject with a precision setting matching the precision of the IEEE 754-2019 decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN.static final MathContextAMathContextobject whose settings have the values required for unlimited precision arithmetic.
- 
Constructor SummaryConstructorsConstructorDescriptionMathContext(int setPrecision) Constructs a newMathContextwith the specified precision and theHALF_UProunding mode.MathContext(int setPrecision, RoundingMode setRoundingMode) Constructs a newMathContextwith a specified precision and rounding mode.MathContext(String val) Constructs a newMathContextfrom a string.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanCompares thisMathContextwith the specifiedObjectfor equality.intReturns theprecisionsetting.Returns the roundingMode setting.inthashCode()Returns the hash code for thisMathContext.toString()Returns the string representation of thisMathContext.
- 
Field Details- 
UNLIMITEDAMathContextobject whose settings have the values required for unlimited precision arithmetic. The values of the settings are:precision=0 roundingMode=HALF_UP
- 
DECIMAL32AMathContextobject 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) is not used for rounding.
- 
DECIMAL64AMathContextobject 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) is not used for rounding.
- 
DECIMAL128AMathContextobject 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) is not used for rounding.
 
- 
- 
Constructor Details- 
MathContextpublic MathContext(int setPrecision) Constructs a newMathContextwith the specified precision and theHALF_UProunding mode.- Parameters:
- setPrecision- The non-negative- intprecision setting.
- Throws:
- IllegalArgumentException- if the- setPrecisionparameter is less than zero.
 
- 
MathContextConstructs a newMathContextwith a specified precision and rounding mode.- Parameters:
- setPrecision- The non-negative- intprecision setting.
- setRoundingMode- The rounding mode to use.
- Throws:
- IllegalArgumentException- if the- setPrecisionparameter is less than zero.
- NullPointerException- if the rounding mode argument is- null
 
- 
MathContextConstructs a newMathContextfrom a string. The string must be in the same format as that produced by thetoString()method.An IllegalArgumentExceptionis 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 is- null
 
 
- 
- 
Method Details- 
getPrecisionpublic int getPrecision()Returns theprecisionsetting. This value is always non-negative.- Returns:
- an intwhich is the value of theprecisionsetting
 
- 
getRoundingModeReturns the roundingMode setting. This will be one ofRoundingMode.CEILING,RoundingMode.DOWN,RoundingMode.FLOOR,RoundingMode.HALF_DOWN,RoundingMode.HALF_EVEN,RoundingMode.HALF_UP,RoundingMode.UNNECESSARY, orRoundingMode.UP.- Returns:
- a RoundingModeobject which is the value of theroundingModesetting
 
- 
equalsCompares thisMathContextwith the specifiedObjectfor equality.
- 
hashCode
- 
toStringReturns the string representation of thisMathContext. TheStringreturned represents the settings of theMathContextobject as two space-delimited words (separated by a single space character,'\u0020', and with no leading or trailing white space), as follows:- 
 The string "precision=", immediately followed by the value of the precision setting as a numeric string as if generated by theInteger.toStringmethod.
- 
 The string "roundingMode=", immediately followed by the value of theroundingModesetting as a word. This word will be the same as the name of the corresponding public constant in theRoundingModeenum.
 For example: precision=9 roundingMode=HALF_UP Additional words may be appended to the result oftoStringin the future if more properties are added to this class.
- 
 The string 
 
-