Top Description Fields Constructors Methods
java.math

public final Class MathContext

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.io.*

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:

  1. precision: the number of digits to be used for an operation; results are rounded to this precision
  2. roundingMode: a RoundingMode object which specifies the algorithm to be used for rounding.
Authors
Mike Cowlishaw, Joseph D. Darcy
Since
1.5
See Also
BigDecimal, RoundingMode, IEEE Standard for Floating-Point Arithmetic

Field Summary

Modifier and TypeField and Description
public static final MathContext
DECIMAL128

A MathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal128 format, 34 digits, and a rounding mode of HALF_EVEN.

public static final MathContext
DECIMAL32

A MathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal32 format, 7 digits, and a rounding mode of HALF_EVEN.

public static final MathContext
DECIMAL64

A MathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal64 format, 16 digits, and a rounding mode of HALF_EVEN.

private static final RoundingMode
private static final int
pack-priv final int
precision

The number of digits to be used for an operation.

pack-priv final RoundingMode
roundingMode

The rounding algorithm to be used for an operation.

private static final long
public static final MathContext
UNLIMITED

A MathContext object whose settings have the values required for unlimited precision arithmetic.

Constructor Summary

AccessConstructor and Description
public
MathContext(int
The non-negative int precision setting.
setPrecision
)

Constructs a new MathContext with the specified precision and the HALF_UP rounding mode.

public
MathContext(int
The non-negative int precision setting.
setPrecision
,
RoundingMode
The rounding mode to use.
setRoundingMode
)

Constructs a new MathContext with a specified precision and rounding mode.

public
MathContext(String
The string to be parsed
val
)

Constructs a new MathContext from a string.

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if and only if the specified Object is a MathContext object which has exactly the same settings as this object
equals
(Object
Object to which this MathContext is to be compared.
x
)

Overrides java.lang.Object.equals.

Compares this MathContext with the specified Object for equality.

public int

Returns:

an int which is the value of the precision setting
getPrecision
()

Returns the precision setting.

public RoundingMode

Returns:

a RoundingMode object which is the value of the roundingMode setting
getRoundingMode
()

Returns the roundingMode setting.

public int

Returns:

hash code for this MathContext
hashCode
()

Overrides java.lang.Object.hashCode.

Returns the hash code for this MathContext.

private void
readObject(ObjectInputStream
the stream being read.
s
)

Reconstitute the MathContext instance from a stream (that is, deserialize it).

public String

Returns:

a String representing the context settings
toString
()

Overrides java.lang.Object.toString.

Returns the string representation of this MathContext.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

DECIMAL128back to summary
public static final MathContext DECIMAL128

A MathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal128 format, 34 digits, and a rounding mode of HALF_EVEN. Note the exponent range of decimal64 is not used for rounding.

DECIMAL32back to summary
public static final MathContext DECIMAL32

A MathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal32 format, 7 digits, and a rounding mode of HALF_EVEN. Note the exponent range of decimal32 is not used for rounding.

DECIMAL64back to summary
public static final MathContext DECIMAL64

A MathContext object with a precision setting matching the precision of the IEEE 754-2019 decimal64 format, 16 digits, and a rounding mode of HALF_EVEN. Note the exponent range of decimal64 is not used for rounding.

DEFAULT_ROUNDINGMODEback to summary
private static final RoundingMode DEFAULT_ROUNDINGMODE
MIN_DIGITSback to summary
private static final int MIN_DIGITS
precisionback to summary
pack-priv final int precision

The number of digits to be used for an operation. A value of 0 indicates that unlimited precision (as many digits as are required) will be used. Note that leading zeros (in the coefficient of a number) are never significant.

precision will always be non-negative.

roundingModeback to summary
pack-priv final RoundingMode roundingMode

The rounding algorithm to be used for an operation.

See Also
RoundingMode
serialVersionUIDback to summary
private static final long serialVersionUID
Annotations
@Serial
UNLIMITEDback to summary
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

Constructor Detail

MathContextback to summary
public MathContext(int setPrecision)

Constructs a new MathContext with the specified precision and the HALF_UP rounding mode.

Parameters
setPrecision:int

The non-negative int precision setting.

Exceptions
IllegalArgumentException:
if the setPrecision parameter is less than zero.
MathContextback to summary
public MathContext(int setPrecision, RoundingMode setRoundingMode)

Constructs a new MathContext with a specified precision and rounding mode.

Parameters
setPrecision:int

The non-negative int precision setting.

setRoundingMode:RoundingMode

The rounding mode to use.

Exceptions
IllegalArgumentException:
if the setPrecision parameter is less than zero.
NullPointerException:
if the rounding mode argument is null
MathContextback to summary
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:String

The string to be parsed

Exceptions
IllegalArgumentException:
if the precision section is out of range or of incorrect format
NullPointerException:
if the argument is null

Method Detail

equalsback to summary
public boolean equals(Object x)

Overrides java.lang.Object.equals.

Compares this MathContext with the specified Object for equality.

Parameters
x:Object

Object to which this MathContext is to be compared.

Returns:boolean

true if and only if the specified Object is a MathContext object which has exactly the same settings as this object

getPrecisionback to summary
public int getPrecision()

Returns the precision setting. This value is always non-negative.

Returns:int

an int which is the value of the precision setting

getRoundingModeback to summary
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:RoundingMode

a RoundingMode object which is the value of the roundingMode setting

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Returns the hash code for this MathContext.

Returns:int

hash code for this MathContext

readObjectback to summary
private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException

Reconstitute the MathContext instance from a stream (that is, deserialize it).

Parameters
s:ObjectInputStream

the stream being read.

Annotations
@Serial
Exceptions
IOException:
if an I/O error occurs
ClassNotFoundException:
if a serialized class cannot be loaded
toStringback to summary
public String toString()

Overrides java.lang.Object.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:

  1. The string "precision=", immediately followed by the value of the precision setting as a numeric string as if generated by the Integer.toString method.
  2. The string "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_UP
Additional words may be appended to the result of toString in the future if more properties are added to this class.
Returns:String

a String representing the context settings