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
-