模块  java.base
软件包  java.math

Class MathContext

  • 实现的所有接口
    Serializable

    public final class MathContext
    extends Object
    implements Serializable
    不可变对象,它封装了描述数值运算符某些规则的上下文设置,例如BigDecimal类实现的规则

    与基础无关的设置是:

    1. precision :操作使用的位数; 结果四舍五入到此精度
    2. roundingModeRoundingMode对象,指定用于舍入的算法。
    从以下版本开始:
    1.5
    另请参见:
    BigDecimalRoundingModeSerialized Form
    • 字段详细信息

      • UNLIMITED

        public static final MathContext UNLIMITED
        MathContext对象,其设置具有无限精度算术所需的值。 设置值为: precision=0 roundingMode=HALF_UP
      • DECIMAL32

        public static final MathContext DECIMAL32
        MathContext对象,其精度设置与IEEE 754R Decimal32格式匹配,为7位数,舍入模式为 HALF_EVEN ,即IEEE 754R默认值。
      • DECIMAL64

        public static final MathContext DECIMAL64
        MathContext对象,其精度设置与IEEE 754R Decimal64格式匹配,16位,舍入模式为 HALF_EVEN ,即IEEE 754R默认值。
      • DECIMAL128

        public static final MathContext DECIMAL128
        MathContext对象,其精度设置与IEEE 754R Decimal128格式匹配,为34位,舍入模式为 HALF_EVEN ,即IEEE 754R默认值。
    • 构造方法详细信息

      • MathContext

        public MathContext​(int setPrecision)
        构造具有指定精度的新 MathContextHALF_UP舍入模式。
        参数
        setPrecision - 非负 int精度设置。
        异常
        IllegalArgumentException - 如果 setPrecision参数小于零。
      • MathContext

        public MathContext​(int setPrecision,
                           RoundingMode setRoundingMode)
        构造具有指定精度和舍入模式的新 MathContext
        参数
        setPrecision - 非负 int精度设置。
        setRoundingMode - 要使用的舍入模式。
        异常
        IllegalArgumentException - 如果 setPrecision参数小于零。
        NullPointerException - 如果舍入模式参数为 null
      • MathContext

        public MathContext​(String val)
        从字符串构造一个新的MathContext 该字符串的格式必须与toString()方法生成的格式相同。

        一个IllegalArgumentException被抛出如果字符串的精度部分超出范围( < 0 ),或该字符串不是在由创建的格式toString()方法。

        参数
        val - 要解析的字符串
        异常
        IllegalArgumentException - 如果精度部分超出范围或格式不正确
        NullPointerException - 如果参数是 null
    • 方法详细信息

      • getPrecision

        public int getPrecision()
        返回precision设置。 此值始终为非负值。
        结果
        int这是 precision设置的值
      • equals

        public boolean equals​(Object x)
        将此 MathContext与指定的 Object进行相等性比较。
        重写:
        equals在类 Object
        参数
        x - Object这个 MathContext要比较。
        结果
        true当且仅当指定的 ObjectMathContext对象时,其设置与此对象完全相同
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        返回此MathContext的字符串表示MathContext 所述String返回表示的设置MathContext对象作为两个空格分隔单词(由单个空格字符,分离的'\u0020' ,并与无前导或尾随空格),如下所示:
        1. 字符串"precision=" ,紧接着是精度设置的值,作为数字字符串,就好像由Integer.toString方法生成一样
        2. 字符串"roundingMode=" ,紧接着是roundingMode设置为单词的值。 该单词与RoundingMode枚举中相应公共常量的名称相同。

        例如:

          precision=9 roundingMode=HALF_UP 
        如果将更多属性添加到此类,将来可能会在toString的结果中附加其他单词。
        重写:
        toString在类 Object
        结果
        表示上下文设置的 String