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
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final MathContext
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 final MathContext
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 final MathContext
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 final MathContext
AMathContext
object whose settings have the values required for unlimited precision arithmetic. -
Constructor Summary
ConstructorDescriptionMathContext
(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
Modifier and TypeMethodDescriptionboolean
Compares thisMathContext
with the specifiedObject
for equality.int
Returns theprecision
setting.Returns the roundingMode setting.int
hashCode()
Returns the hash code for thisMathContext
.toString()
Returns the string representation of thisMathContext
.
-
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 is not 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 is not 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 decimal64 is not 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
Compares thisMathContext
with the specifiedObject
for equality. -
hashCode
public int hashCode()Returns the hash code for thisMathContext
. -
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
-