java.lang.Object
java.math.MathContext
- 所有已实现的接口:
-
Serializable
封装描述数字运算规则的上下文设置的不可变对象,例如由
BigDecimal
类实现的规则。
基于独立于基数的设置包括:
precision
: 用于操作的数字位数;结果将舍入到此精度roundingMode
: 一个RoundingMode
对象,指定用于舍入的算法。
- 自版本:
- 1.5
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final MathContext
一个具有与IEEE 754-2019 decimal128格式的精度设置匹配的MathContext
对象,34位数字,并且舍入模式为HALF_EVEN
。static final MathContext
一个具有与IEEE 754-2019 decimal32格式的精度设置匹配的MathContext
对象,7位数字,并且舍入模式为HALF_EVEN
。static final MathContext
一个具有与IEEE 754-2019 decimal64格式的精度设置匹配的MathContext
对象,16位数字,并且舍入模式为HALF_EVEN
。static final MathContext
一个具有所需无限精度算术的值的MathContext
对象。 -
Constructor Summary
ConstructorDescriptionMathContext
(int setPrecision) 用指定的精度和HALF_UP
舍入模式构造一个新的MathContext
。MathContext
(int setPrecision, RoundingMode setRoundingMode) 用指定的精度和舍入模式构造一个新的MathContext
。MathContext
(String val) 从字符串构造一个新的MathContext
。 -
Method Summary
-
Field Details
-
UNLIMITED
一个具有所需无限精度算术的MathContext
对象。设置的值为:precision=0 roundingMode=HALF_UP
-
DECIMAL32
一个具有与IEEE 754-2019 decimal32格式的精度设置匹配的MathContext
对象,7位数字,并且舍入模式为HALF_EVEN
。请注意,decimal32的指数范围不用于舍入。 -
DECIMAL64
一个具有与IEEE 754-2019 decimal64格式的精度设置匹配的MathContext
对象,16位数字,并且舍入模式为HALF_EVEN
。请注意,decimal64的指数范围不用于舍入。 -
DECIMAL128
一个具有与IEEE 754-2019 decimal128格式的精度设置匹配的MathContext
对象,34位数字,并且舍入模式为HALF_EVEN
。请注意,decimal64的指数范围不用于舍入。
-
-
Constructor Details
-
MathContext
public MathContext(int setPrecision) 用指定的精度和HALF_UP
舍入模式构造一个新的MathContext
。- 参数:
-
setPrecision
- 非负的int
精度设置。 - 抛出:
-
IllegalArgumentException
- 如果setPrecision
参数小于零。
-
MathContext
用指定的精度和舍入模式构造一个新的MathContext
。- 参数:
-
setPrecision
- 非负的int
精度设置。 -
setRoundingMode
- 要使用的舍入模式。 - 抛出:
-
IllegalArgumentException
- 如果setPrecision
参数小于零。 -
NullPointerException
- 如果舍入模式参数为null
-
MathContext
从字符串构造一个新的MathContext
。字符串必须与toString()
方法生成的格式相同。如果字符串的精度部分超出范围(
< 0
)或字符串不符合toString()
方法创建的格式,则会抛出IllegalArgumentException
。- 参数:
-
val
- 要解析的字符串 - 抛出:
-
IllegalArgumentException
- 如果精度部分超出范围或格式不正确 -
NullPointerException
- 如果参数为null
-
-
Method Details
-
getPrecision
public int getPrecision()返回precision
设置。该值始终为非负数。- 返回:
-
一个
int
,表示precision
设置的值
-
getRoundingMode
返回舍入模式设置。这将是RoundingMode.CEILING
、RoundingMode.DOWN
、RoundingMode.FLOOR
、RoundingMode.HALF_DOWN
、RoundingMode.HALF_EVEN
、RoundingMode.HALF_UP
、RoundingMode.UNNECESSARY
或RoundingMode.UP
之一。- 返回:
-
一个
RoundingMode
对象,表示roundingMode
设置的值
-
equals
将此MathContext
与指定的Object
进行比较以确定是否相等。 -
hashCode
public int hashCode()返回此MathContext
的哈希码。 -
toString
返回此MathContext
的字符串表示形式。返回的String
表示MathContext
对象的设置,格式为两个用空格分隔的单词(由单个空格字符'\u0020'
分隔,没有前导或尾随空格),如下所示:- 字符串
"precision="
,紧接着精度设置的值作为数字字符串,就像由Integer.toString
方法生成的那样。 - 字符串
"roundingMode="
,紧接着roundingMode
设置的值作为一个单词。此单词将与RoundingMode
枚举中相应公共常量的名称相同。
例如:
precision=9 roundingMode=HALF_UP
如果将来为此类添加更多属性,则toString
的结果可能会附加其他单词。 - 字符串
-