MathContext (Java Platform SE 8 ) (original) (raw)
- 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 precisionroundingMode
: a RoundingMode object 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 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 Summary
Constructors
Constructor 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. Method Summary
All Methods Instance Methods Concrete Methods
Modifier and Type Method Description boolean equals(Object x) Compares this MathContext with the specifiedObject 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. * ### Methods inherited from class java.lang.[Object](../../java/lang/Object.html "class in java.lang") `[clone](../../java/lang/Object.html#clone--), [finalize](../../java/lang/Object.html#finalize--), [getClass](../../java/lang/Object.html#getClass--), [notify](../../java/lang/Object.html#notify--), [notifyAll](../../java/lang/Object.html#notifyAll--), [wait](../../java/lang/Object.html#wait--), [wait](../../java/lang/Object.html#wait-long-), [wait](../../java/lang/Object.html#wait-long-int-)`
Field Detail
* #### UNLIMITED public static final [MathContext](../../java/math/MathContext.html "class in java.math") 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](../../java/math/MathContext.html "class in java.math") DECIMAL32 A `MathContext` object with a precision setting matching the IEEE 754R Decimal32 format, 7 digits, and a rounding mode of [HALF\_EVEN](../../java/math/RoundingMode.html#HALF%5FEVEN), the IEEE 754R default. * #### DECIMAL64 public static final [MathContext](../../java/math/MathContext.html "class in java.math") DECIMAL64 A `MathContext` object with a precision setting matching the IEEE 754R Decimal64 format, 16 digits, and a rounding mode of [HALF\_EVEN](../../java/math/RoundingMode.html#HALF%5FEVEN), the IEEE 754R default. * #### DECIMAL128 public static final [MathContext](../../java/math/MathContext.html "class in java.math") DECIMAL128 A `MathContext` object with a precision setting matching the IEEE 754R Decimal128 format, 34 digits, and a rounding mode of [HALF\_EVEN](../../java/math/RoundingMode.html#HALF%5FEVEN), the IEEE 754R default.
Constructor Detail
* #### MathContext public MathContext(int setPrecision) Constructs a new `MathContext` with the specified precision and the [HALF\_UP](../../java/math/RoundingMode.html#HALF%5FUP) rounding mode. Parameters: `setPrecision` \- The non-negative `int` precision setting. Throws: `[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if the `setPrecision` parameter is less than zero. * #### MathContext public MathContext(int setPrecision, [RoundingMode](../../java/math/RoundingMode.html "enum in java.math") setRoundingMode) Constructs a new `MathContext` with a specified precision and rounding mode. Parameters: `setPrecision` \- The non-negative `int` precision setting. `setRoundingMode` \- The rounding mode to use. Throws: `[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if the `setPrecision` parameter is less than zero. `[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")` \- if the rounding mode argument is `null` * #### MathContext public MathContext([String](../../java/lang/String.html "class in java.lang") val) Constructs a new `MathContext` from a string. The string must be in the same format as that produced by the[toString()](../../java/math/MathContext.html#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()](../../java/math/MathContext.html#toString--) method. Parameters: `val` \- The string to be parsed Throws: `[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if the precision section is out of range or of incorrect format `[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")` \- if the argument is `null`
Method Detail
* #### getPrecision public int getPrecision() Returns the `precision` setting. This value is always non-negative. Returns: an `int` which is the value of the `precision` setting * #### getRoundingMode public [RoundingMode](../../java/math/RoundingMode.html "enum in java.math") getRoundingMode() Returns: a `RoundingMode` object which is the value of the`roundingMode` setting * #### equals public boolean equals([Object](../../java/lang/Object.html "class in java.lang") x) Compares this `MathContext` with the specified`Object` for equality. Overrides: `[equals](../../java/lang/Object.html#equals-java.lang.Object-)` in class `[Object](../../java/lang/Object.html "class in java.lang")` Parameters: `x` \- `Object` to which this `MathContext` is to be compared. Returns: `true` if and only if the specified `Object` is a `MathContext` object which has exactly the same settings as this object See Also: [Object.hashCode()](../../java/lang/Object.html#hashCode--), [HashMap](../../java/util/HashMap.html "class in java.util") * #### hashCode public int hashCode() Returns the hash code for this `MathContext`. Overrides: `[hashCode](../../java/lang/Object.html#hashCode--)` in class `[Object](../../java/lang/Object.html "class in java.lang")` Returns: hash code for this `MathContext` See Also: [Object.equals(java.lang.Object)](../../java/lang/Object.html#equals-java.lang.Object-), [System.identityHashCode(java.lang.Object)](../../java/lang/System.html#identityHashCode-java.lang.Object-) * #### toString public [String](../../java/lang/String.html "class in java.lang") 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](../../java/lang/Integer.html#toString-int-) 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](../../java/math/RoundingMode.html "enum in java.math") 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. Overrides: `[toString](../../java/lang/Object.html#toString--)` in class `[Object](../../java/lang/Object.html "class in java.lang")` Returns: a `String` representing the context settings
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.