public final class MathContext extends Object implements Serializable
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 RoundingMode
object which specifies the algorithm to be used for rounding.
BigDecimal
,
RoundingMode
,
Serialized FormModifier and Type | Field and Description |
---|---|
static 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. |
static 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. |
static 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. |
static MathContext |
UNLIMITED
A
MathContext object whose settings have the values required for unlimited precision arithmetic. |
Constructor and Description |
---|
MathContext(int setPrecision)
Constructs a new
MathContext with the specified precision and the HALF_UP
rounding mode. |
MathContext(int setPrecision,
RoundingMode setRoundingMode)
Constructs a new
MathContext with a specified precision and rounding mode. |
MathContext(String val)
Constructs a new
MathContext from a string. |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object x)
Compares this
MathContext with the specified Object for equality. |
int |
getPrecision()
Returns the
precision setting. |
RoundingMode |
getRoundingMode()
Returns the roundingMode setting.
|
int |
hashCode()
Returns the hash code for this
MathContext . |
String |
toString()
Returns the string representation of this
MathContext . |
public static final MathContext DECIMAL128
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.public static final MathContext DECIMAL32
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.public static final MathContext DECIMAL64
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.public static final MathContext UNLIMITED
MathContext
object whose settings have the values required for unlimited precision arithmetic. The
values of the settings are:
precision=0 roundingMode=HALF_UP
public MathContext(int setPrecision)
MathContext
with the specified precision and the HALF_UP
rounding mode.setPrecision
- The non-negative int
precision setting.IllegalArgumentException
- if the setPrecision
parameter is less than zero.public MathContext(int setPrecision, RoundingMode setRoundingMode)
MathContext
with a specified precision and rounding mode.setPrecision
- The non-negative int
precision setting.setRoundingMode
- The rounding mode to use.IllegalArgumentException
- if the setPrecision
parameter is less than zero.NullPointerException
- if the rounding mode argument is null
public MathContext(String val)
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.
val
- The string to be parsedIllegalArgumentException
- if the precision section is out of range or of incorrect formatNullPointerException
- if the argument is null
public boolean equals(@Nullable Object x)
MathContext
with the specified Object
for equality.equals
in class Object
x
- Object
to which this MathContext
is to be compared.true
if and only if the specified Object
is a MathContext
object which has
exactly the same settings as this objectObject.hashCode()
,
HashMap
public int getPrecision()
precision
setting. This value is always non-negative.int
which is the value of the precision
settingpublic RoundingMode getRoundingMode()
RoundingMode.CEILING
, RoundingMode.DOWN
,
RoundingMode.FLOOR
, RoundingMode.HALF_DOWN
, RoundingMode.HALF_EVEN
,
RoundingMode.HALF_UP
, RoundingMode.UNNECESSARY
, or RoundingMode.UP
.RoundingMode
object which is the value of the roundingMode
settingpublic int hashCode()
MathContext
.hashCode
in class Object
MathContext
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
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:
"precision="
, immediately followed by the value of the precision setting as a numeric
string as if generated by the Integer.toString
method.
"roundingMode="
, immediately followed by the value of the roundingMode
setting as
a word. This word will be the same as the name of the corresponding public constant in the RoundingMode
enum.
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.