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 precisionroundingMode: aRoundingModeobject which specifies the algorithm to be used for rounding.
- Since:
 - 1.5
 - See Also:
 
- 
Field Summary
FieldsModifier 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 Summary
ConstructorsConstructorDescriptionMathContext(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 Summary
Modifier 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
- 
UNLIMITED
AMathContextobject whose settings have the values required for unlimited precision arithmetic. The values of the settings are:precision=0 roundingMode=HALF_UP - 
DECIMAL32
AMathContextobject 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 is not used for rounding. - 
DECIMAL64
AMathContextobject 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 is not used for rounding. - 
DECIMAL128
AMathContextobject 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 decimal64 is not used for rounding. 
 - 
 - 
Constructor Details
- 
MathContext
public MathContext(int setPrecision) Constructs a newMathContextwith the specified precision and theHALF_UProunding mode.- Parameters:
 setPrecision- The non-negativeintprecision setting.- Throws:
 IllegalArgumentException- if thesetPrecisionparameter is less than zero.
 - 
MathContext
Constructs a newMathContextwith a specified precision and rounding mode.- Parameters:
 setPrecision- The non-negativeintprecision setting.setRoundingMode- The rounding mode to use.- Throws:
 IllegalArgumentException- if thesetPrecisionparameter is less than zero.NullPointerException- if the rounding mode argument isnull
 - 
MathContext
Constructs 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 formatNullPointerException- if the argument isnull
 
 - 
 - 
Method Details
- 
getPrecision
public int getPrecision()Returns theprecisionsetting. This value is always non-negative.- Returns:
 - an 
intwhich is the value of theprecisionsetting 
 - 
getRoundingMode
Returns 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 
 - 
equals
Compares thisMathContextwith the specifiedObjectfor equality. - 
hashCode
public int hashCode()Returns the hash code for thisMathContext. - 
toString
Returns 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 
 
 -