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
: aRoundingMode
object which specifies the algorithm to be used for rounding.
- Since:
- 1.5
- External Specifications
- See Also:
Field Summary
FieldsModifier and TypeFieldDescriptionstatic 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
ConstructorsConstructorDescriptionMathContext
(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.MathContext
(String val) Constructs a newMathContext
from a string.Method Summary
Field Details
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
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
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
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
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
Constructs a newMathContext
from a string. The string must be in the same format as that produced by thetoString()
method.An
IllegalArgumentException
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 formatNullPointerException
- if the argument isnull
Method Details
getPrecision
public int getPrecision()Returns theprecision
setting. This value is always non-negative.- Returns:
- an
int
which is the value of theprecision
setting
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
RoundingMode
object which is the value of theroundingMode
setting
equals
hashCode
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:- The string
"precision="
, immediately followed by the value of the precision setting as a numeric string as if generated by theInteger.toString
method. - 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.- The string