MathContext (Java SE 10 & JDK 10 )
- 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
BigDecimalclass.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 MathContextDECIMAL128A
MathContextobject with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.static MathContextDECIMAL32A
MathContextobject with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.static MathContextDECIMAL64A
MathContextobject with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode ofHALF_EVEN, the IEEE 754R default.static MathContextUNLIMITEDA
MathContextobject whose settings have the values required for unlimited precision arithmetic.
-
Constructor Summary
Constructors Constructor Description MathContext(int setPrecision)Constructs a new
MathContextwith the specified precision and theHALF_UProunding mode.MathContext(int setPrecision, RoundingMode setRoundingMode)Constructs a new
MathContextwith a specified precision and rounding mode.MathContext(String val)Constructs a new
MathContextfrom a string.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object x)Compares this
MathContextwith the specifiedObjectfor equality.intgetPrecision()Returns the
precisionsetting.RoundingModegetRoundingMode()Returns the roundingMode setting.
inthashCode()Returns the hash code for this
MathContext.StringtoString()Returns the string representation of this
MathContext.
-
-
-
Field Detail
-
UNLIMITED
public static final MathContext UNLIMITED
A
MathContextobject 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
MathContextobject 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
A
MathContextobject 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
A
MathContextobject 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 new
MathContextwith 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 new
MathContextwith 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
MathContextfrom 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 the
precisionsetting. This value is always non-negative.- Returns:
- an
intwhich is the value of theprecisionsetting
-
getRoundingMode
public RoundingMode getRoundingMode()
- Returns:
- a
RoundingModeobject which is the value of theroundingModesetting
-
equals
public boolean equals(Object x)
Compares this
MathContextwith 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(),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. 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 of
toStringin the future if more properties are added to this class. -
The string
-
-
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2018, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.