Module java.base
Package java.math

Class MathContext

java.lang.Object
java.math.MathContext
所有已实现的接口:
Serializable

public final class MathContext extends Object implements Serializable
封装描述数字运算规则的上下文设置的不可变对象,例如由BigDecimal类实现的规则。

基于独立于基数的设置包括:

  1. precision: 用于操作的数字位数;结果将舍入到此精度
  2. roundingMode: 一个RoundingMode对象,指定用于舍入的算法。
自版本:
1.5
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static 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

    Constructors
    Constructor
    Description
    MathContext(int setPrecision)
    用指定的精度和HALF_UP舍入模式构造一个新的MathContext
    MathContext(int setPrecision, RoundingMode setRoundingMode)
    用指定的精度和舍入模式构造一个新的MathContext
    从字符串构造一个新的MathContext
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    将此MathContext与指定的Object进行比较以确定是否相等。
    int
    返回precision设置。
    返回舍入模式设置。
    int
    返回此MathContext的哈希码。
    返回此MathContext的字符串表示形式。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • UNLIMITED

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

      public static final MathContext DECIMAL32
      一个具有与IEEE 754-2019 decimal32格式的精度设置匹配的MathContext对象,7位数字,并且舍入模式为HALF_EVEN。请注意,decimal32的指数范围不用于舍入。
    • DECIMAL64

      public static final MathContext DECIMAL64
      一个具有与IEEE 754-2019 decimal64格式的精度设置匹配的MathContext对象,16位数字,并且舍入模式为HALF_EVEN。请注意,decimal64的指数范围不用于舍入。
    • DECIMAL128

      public static final MathContext 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

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

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

      如果字符串的精度部分超出范围(< 0)或字符串不符合toString()方法创建的格式,则会抛出IllegalArgumentException

      参数:
      val - 要解析的字符串
      抛出:
      IllegalArgumentException - 如果精度部分超出范围或格式不正确
      NullPointerException - 如果参数为null
  • Method Details

    • getPrecision

      public int getPrecision()
      返回precision设置。该值始终为非负数。
      返回:
      一个int,表示precision设置的值
    • getRoundingMode

      public RoundingMode getRoundingMode()
      返回:
      一个RoundingMode对象,表示roundingMode设置的值
    • equals

      public boolean equals(Object x)
      将此MathContext与指定的Object进行比较以确定是否相等。
      覆盖:
      equals 在类 Object
      参数:
      x - 要比较此MathContextObject
      返回:
      如果指定的Object是一个具有与此对象完全相同设置的MathContext对象,则返回true
      参见:
    • hashCode

      public int hashCode()
      返回此MathContext的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      MathContext的哈希码
      参见:
    • toString

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

      例如:

       precision=9 roundingMode=HALF_UP
       
      如果将来为此类添加更多属性,则toString的结果可能会附加其他单词。
      覆盖:
      toString 在类 Object
      返回:
      代表上下文设置的String