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 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.Methods declared in class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Creates and returns a copy of this object.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?> getClass()Returns the runtime class of thisObject.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
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 (min exponent of -95, max exponent of 96) 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 (min exponent of -383, max exponent of 384) 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 decimal128 (min exponent of -6143, max exponent of 6144) 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
-
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
-