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 the 
BigDecimal class.
 The base-independent settings are:
- precision: the number of digits to be used for an operation; results are rounded to this precision
- roundingMode: a- RoundingModeobject which specifies the algorithm to be used for rounding.
- Since:
- 1.5
- See Also:
- BigDecimal,- RoundingMode, Serialized Form
- 
Field SummaryFields 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 SummaryConstructors 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 SummaryModifier 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 Details- 
UNLIMITEDAMathContextobject whose settings have the values required for unlimited precision arithmetic. The values of the settings are:precision=0 roundingMode=HALF_UP
- 
DECIMAL32AMathContextobject with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.
- 
DECIMAL64AMathContextobject with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.
- 
DECIMAL128AMathContextobject with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.
 
- 
- 
Constructor Details- 
MathContextpublic MathContext(int setPrecision)Constructs a newMathContextwith the specified precision and theHALF_UProunding mode.- Parameters:
- setPrecision- The non-negative- intprecision setting.
- Throws:
- IllegalArgumentException- if the- setPrecisionparameter is less than zero.
 
- 
MathContextConstructs a newMathContextwith a specified precision and rounding mode.- Parameters:
- setPrecision- The non-negative- intprecision setting.
- setRoundingMode- The rounding mode to use.
- Throws:
- IllegalArgumentException- if the- setPrecisionparameter is less than zero.
- NullPointerException- if the rounding mode argument is- null
 
- 
MathContextConstructs 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 format
- NullPointerException- if the argument is- null
 
 
- 
- 
Method Details- 
getPrecisionpublic int getPrecision()Returns theprecisionsetting. This value is always non-negative.- Returns:
- an intwhich is the value of theprecisionsetting
 
- 
getRoundingModeReturns 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
 
- 
equalsCompares thisMathContextwith the specifiedObjectfor equality.- Overrides:
- equalsin class- Object
- Parameters:
- x-- Objectto which this- MathContextis to be compared.
- Returns:
- trueif and only if the specified- Objectis a- MathContextobject which has exactly the same settings as this object
- See Also:
- Object.hashCode(),- HashMap
 
- 
hashCodepublic int hashCode()Returns the hash code for thisMathContext.- Overrides:
- hashCodein class- Object
- Returns:
- hash code for this MathContext
- See Also:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
- 
toStringReturns 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 
 
-