java.lang.Object
java.math.MathContext
- 所有已实现的接口:
-
Serializable
封装描述数字运算规则的上下文设置的不可变对象,例如由
BigDecimal类实现的规则。
基于独立于基数的设置包括:
precision: 用于操作的数字位数;结果将舍入到此精度roundingMode: 一个RoundingMode对象,指定用于舍入的算法。
- 自版本:
- 1.5
- 参见:
-
Field Summary
FieldsModifier 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
ConstructorsConstructorDescriptionMathContext(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的结果可能会附加其他单词。 - 字符串
-