Class MathContext
- 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: aRoundingModeobject which specifies the algorithm to be used for rounding.
- Since:
- 1.5
- See Also:
-
BigDecimal,RoundingMode, Serialized Form
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
static MathContext | DECIMAL128 | A |
static MathContext | DECIMAL32 | A |
static MathContext | DECIMAL64 | A |
static MathContext | UNLIMITED | A |
Constructor Summary
| Constructor | Description |
|---|---|
MathContext(int setPrecision) | Constructs a new |
MathContext(int setPrecision,
RoundingMode setRoundingMode) | Constructs a new |
MathContext(String val) | Constructs a new |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
boolean | equals(Object x) | Compares this |
int | getPrecision() | Returns the |
RoundingMode | getRoundingMode() | Returns the roundingMode setting. |
int | hashCode() | Returns the hash code for this |
String | toString() | Returns the string representation of this |
Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Field Detail
UNLIMITED
public static final MathContext UNLIMITED
A MathContext object 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
A MathContext object with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode of HALF_EVEN, the IEEE 754R default.
DECIMAL64
public static final MathContext DECIMAL64
A MathContext object with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode of HALF_EVEN, the IEEE 754R default.
DECIMAL128
public static final MathContext DECIMAL128
A MathContext object with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode of HALF_EVEN, the IEEE 754R default.
Constructor Detail
MathContext
public MathContext(int setPrecision)
Constructs a new MathContext with the specified precision and the HALF_UP rounding mode.
- Parameters:
-
setPrecision- The non-negativeintprecision setting. - Throws:
-
IllegalArgumentException- if thesetPrecisionparameter is less than zero.
MathContext
public MathContext(int setPrecision,
RoundingMode setRoundingMode) Constructs a new MathContext with 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 new MathContext from a string. The string must be in the same format as that produced by the toString() 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 the toString() 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 isnull
Method Detail
getPrecision
public int getPrecision()
Returns the precision setting. 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 of RoundingMode.CEILING, RoundingMode.DOWN, RoundingMode.FLOOR, RoundingMode.HALF_DOWN, RoundingMode.HALF_EVEN, RoundingMode.HALF_UP, RoundingMode.UNNECESSARY, or RoundingMode.UP.
- Returns:
- a
RoundingModeobject which is the value of theroundingModesetting
equals
public boolean equals(Object x)
Compares this MathContext with the specified Object for 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(),HashMap
hashCode
public int hashCode()
Returns the hash code for this MathContext.
- Overrides:
-
hashCodein classObject - Returns:
- hash code for this
MathContext - See Also:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Returns the string representation of this MathContext. The String returned represents the settings of the MathContext 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.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_UPAdditional words may be appended to the result of
toString in the future if more properties are added to this class.