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 precisionroundingMode: aRoundingModeobject which specifies the algorithm to be used for rounding.
- Since:
- 1.5
- External Specifications
- See Also:
Field Summary
FieldsModifier and TypeFieldDescriptionstatic finalMathContextAMathContextobject with a precision setting matching the precision of the IEEE 754-2019 decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN.static finalMathContextAMathContextobject with a precision setting matching the precision of the IEEE 754-2019 decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN.static finalMathContextAMathContextobject with a precision setting matching the precision of the IEEE 754-2019 decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN.static finalMathContextAMathContextobject 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
Field Details
UNLIMITED
AMathContextobject whose settings have the values required for unlimited precision arithmetic. The values of the settings are:precision=0 roundingMode=HALF_UPDECIMAL32
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 (min exponent of -95, max exponent of 96) isnot 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 (min exponent of -383, max exponent of 384) isnot 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 decimal128 (min exponent of -6143, max exponent of 6144) isnot 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
hashCode
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