- java.lang.Object
-
- java.math.MathContext
-
- All Implemented Interfaces:
Serializable
public final class MathContext extends Object implements Serializable
Immutable objects which encapsulate the context settings which describe certain rules for numerical operators, such as those implemented by theBigDecimalclass.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:
BigDecimal,RoundingMode, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static MathContextDECIMAL128AMathContextobject with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.static MathContextDECIMAL32AMathContextobject with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.static MathContextDECIMAL64AMathContextobject with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.static MathContextUNLIMITEDAMathContextobject whose settings have the values required for unlimited precision arithmetic.
-
Constructor Summary
Constructors Constructor Description MathContext(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object x)Compares thisMathContextwith the specifiedObjectfor equality.intgetPrecision()Returns theprecisionsetting.RoundingModegetRoundingMode()Returns the roundingMode setting.inthashCode()Returns the hash code for thisMathContext.StringtoString()Returns the string representation of thisMathContext.
-
-
-
Field Detail
-
UNLIMITED
public static final MathContext UNLIMITED
AMathContextobject whose settings have the values required for unlimited precision arithmetic. The values of the settings are:precision=0 roundingMode=HALF_UP
-
DECIMAL32
public static final MathContext DECIMAL32
AMathContextobject with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.
-
DECIMAL64
public static final MathContext DECIMAL64
AMathContextobject with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.
-
DECIMAL128
public static final MathContext DECIMAL128
AMathContextobject with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.
-
-
Constructor Detail
-
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
public MathContext(int setPrecision, RoundingMode setRoundingMode)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
public MathContext(String val)
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 Detail
-
getPrecision
public int getPrecision()
Returns theprecisionsetting. This value is always non-negative.- Returns:
- an
intwhich is the value of theprecisionsetting
-
getRoundingMode
public RoundingMode 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
public boolean equals(Object x)
Compares thisMathContextwith the specifiedObjectfor equality.- Overrides:
equalsin classObject- Parameters:
x-Objectto which thisMathContextis to be compared.- Returns:
trueif and only if the specifiedObjectis aMathContextobject which has exactly the same settings as this object- See Also:
Object.hashCode()
-
hashCode
public int hashCode()
Returns the hash code for thisMathContext.- Overrides:
hashCodein classObject- Returns:
- hash code for this
MathContext - See Also:
Object.equals(java.lang.Object)
-
toString
public String 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
-
-