java.math.BigDecimal类的中文翻译
原文:
java.math.BigDecimal类的中文翻译(一)
http://blog.sina.com.cn/s/blog_41532384010002td.html
java.math.BigDecimal类的中文翻译(二)
http://blog.sina.com.cn/s/blog_41532384010002te.html
?
类 java.math.BigDecimalpublic class?BigDecimal
extends?Number不可变的、任意精度的带符号的十进制数。 一个 BigDecimal 由一个任意精度的整数值和一个非负的整数标度组成,整数标度代表小数点右边的十进制数字的个数(用 BigDecimal 表示的数值大小是 intVal/10**scale)。 BigDecimals 提供基本的算术操作、精度处理、比较、格式转换和散列。
BigDecimal 类使它的用户对舍入行为有完全的控制权,迫使用户显式地指定能够舍弃部分精度( (除法 和 setScale))的舍入操作的舍入行为。为达到该目的,该类提供了八个?舍入模式?。同时针对 BigDecimal 的精度操作提供了两种类型的操作:数值调整/舍入 (scaling/rounding)操作和小数点移动操作。Scaling/Rounding 操作 (SetScale) 返回一个 BigDecimal,其数值近似 (或精确) 等于操作数,其有效范围是指定的值;也就是说,它们以对数值产生最小影响的方式增加或减少精度。十进制小数点移动操作 (movePointLeft 和 movePointRight)返回一个 BigDecimal ,它是把操作数的小数点在指定方向移动一个指定距离产生的;这种操作可以改变一个数字的值但不影响它的精度。
?
参见: BigInteger变量索引ROUND_CEILING 如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作。 ROUND_DOWN 从不在舍弃(即截断)的小数之前增加数字。 ROUND_FLOOR 如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。 ROUND_HALF_DOWN 若舍弃部分> .5,则作 ROUND_UP;否则,作 ROUND_DOWN 。 ROUND_HALF_EVEN 如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP ;如果它为偶数,则作 ROUND_HALF_DOWN 。 ROUND_HALF_UP 若舍弃部分>=.5,则作 ROUND_UP ;否则,作 ROUND_DOWN 。 ROUND_UNNECESSARY 该“伪舍入模式”实际是指明所要求的操作必须是精确的,,因此不需要舍入操作。 ROUND_UP 总是在非 0 舍弃小数(即截断)之前增加数字。构造子索引BigDecimal(BigInteger) 把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal(BigInteger, int) 把一个 BigInteger 和一个标度翻译成 BigDecimal 。 BigDecimal(double) 把一个 double 型翻译成 BigDecimal 。 BigDecimal(String) 从一个字符串构造 BigDecimal ,该字符串包含一个可选的减号,后面跟着一串零或十进制数字串,再后面是一个可选的小数部分,该小数部分包含一个小数点和一串零或十进制数字串。方法索引abs() 返回一个 BigDecimal ,其值是该数的绝对值,其标度是 this.scale() 。 add(BigDecimal) 返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。 compareTo(BigDecimal) 返回 -1、0 或 1,分别表示该数是小于、等于、或大于 val 。 divide(BigDecimal, int) 返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 divide(BigDecimal, int, int) 返回一个 BigDecimal ,其值是 (this / val),其标度是指定值 。 doubleValue() 把一个数字转换为 double 型。 equals(Object) 如果 x 是一个等于该数字的 BigDecimal ,则返回 true。 floatValue() 把该数字转换为 float 型。 hashCode() 计算该对象的散列码。 intValue() 把该数字转换为 int 值。 longValue() 把该数字转换为 long 型。 max(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较大者。 min(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较小者。 movePointLeft(int) 返回一个 BigDecimal ,其值等于该数十进制小数点向左移动 n 位后所得的值。 movePointRight(int) 把十进制小数点按指定数值向右移动相应位数。 multiply(BigDecimal) 返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。 negate() 返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale() 。 scale() 返回该数值的标度。 setScale(int) 返回一个 BigDecimal ,其标度是指定值,其数值精确等于该数字的值。 setScale(int, int) 返回一个 BigDecimal ,其标度是指定值,其整数值是该 BigDecimal 的整数部分被 10 的适当次幂(保持整个数值不变)乘或者除得到。 signum() 返回该数值的符号(即根据该数的值是正、零或负返回 -1 、 0 或 1 )。 subtract(BigDecimal) 返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。 toBigInteger() 把该数字转换为 BigInteger 。 toString() 返回表示该数字的字符串。 valueOf(long) 按照给定的值和零标度返回一个 BigDecimal 。 valueOf(long, int) 返回一个 BigDecimal ,其值是 (val/10**scale)。变量ROUND_UPpublic static final int ROUND_UP
总是在非零的舍弃小数(即截断)之前增加数字。 注意该舍入模式不减少量值。 (从零开始舍入)?
ROUND_DOWNpublic static final int ROUND_DOWN
从不在舍弃的小数(即截断)之前增加数字。 注意该舍入模式不增加量值。 (舍入到零)?
ROUND_CEILINGpublic static final int ROUND_CEILING
如果 BigDecimal 为正,则作 ROUND_UP 操作;如果为负,则作 ROUND_DOWN 操作。注意该舍入模式不减少值。(舍入到正无穷大)?
ROUND_FLOORpublic static final int ROUND_FLOOR
如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。注意该舍入模式不增加值。(舍入到负无穷大)?
ROUND_HALF_UPpublic static final int ROUND_HALF_UP
若舍弃部分>=.5,则作 ROUND_UP ;否则,则作 ROUND_DOWN (舍入到 “最近的数值”,除非向上舍入和向下舍入的距离是相等的)。?
ROUND_HALF_DOWNpublic static final int ROUND_HALF_DOWN
若舍弃部分> .5 ,则作 ROUND_DOWN;否则,作 ROUND_DOWN 操作(舍入到 “最近的数值”,除非向下舍入和向上舍入的距离相等)。?
ROUND_HALF_EVENpublic static final int ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP 操作;如果它为偶数,则作 ROUND_HALF_DOWN 操作(舍入到 “最近的数值”,除非向到两边的距离相等)。?
ROUND_UNNECESSARYpublic static final int ROUND_UNNECESSARY
该 “伪舍入模式”实际是要求操作有一个精确结果,,因此不需要舍入。如果该舍入模式对一个指定的操作产生不精确的结果,则抛出算术异常。?
构造子BigDecimalpublic BigDecimal(String?val) throws?NumberFormatException
从一个字符串构造 BigDecimal ,该字符串包含可选的减号,后面跟着一串零或十进制数字序列,再后面可能会跟着一个小数部分,该小数部分由一个小数点和一串零或一个十进制数字序列构成。字符串必须至少包含一个整数部分或一个小数部分。作为结果的 BigDecimal 标度将是字符串中十进制小数点右边的数字,如果字符串中未包含十进制小数点则为零。字符到数字的映射是由 Character.digit 提供的。 任何外部字符 (包括空白符) 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
把一个 double 型翻译成 BigDecimal 。BigDecimal 的标度是使 10**scale * val 为一整数的最小数值。 一个 double 值,若为负无穷、正无穷或 NaN 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(BigInteger?val)
把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal 的标度为零。?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
把一个 BigInteger 和一个标度翻译成一个 BigDecimal 。 BigDecimal 的值是 (BigInteger/10**scale) 。 负标度将导致一个 NumberFormatException 异常。
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
不可变的、任意精度的带符号的十进制数。 一个 BigDecimal 由一个任意精度的整数值和一个非负的整数标度组成,整数标度代表小数点右边的十进制数字的个数(用 BigDecimal 表示的数值大小是 intVal/10**scale)。 BigDecimals 提供基本的算术操作、精度处理、比较、格式转换和散列。
BigDecimal 类使它的用户对舍入行为有完全的控制权,迫使用户显式地指定能够舍弃部分精度( (除法 和 setScale))的舍入操作的舍入行为。为达到该目的,该类提供了八个?舍入模式?。同时针对 BigDecimal 的精度操作提供了两种类型的操作:数值调整/舍入 (scaling/rounding)操作和小数点移动操作。Scaling/Rounding 操作 (SetScale) 返回一个 BigDecimal,其数值近似 (或精确) 等于操作数,其有效范围是指定的值;也就是说,它们以对数值产生最小影响的方式增加或减少精度。十进制小数点移动操作 (movePointLeft 和 movePointRight)返回一个 BigDecimal ,它是把操作数的小数点在指定方向移动一个指定距离产生的;这种操作可以改变一个数字的值但不影响它的精度。
?
变量索引ROUND_CEILING 如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作。 ROUND_DOWN 从不在舍弃(即截断)的小数之前增加数字。 ROUND_FLOOR 如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。 ROUND_HALF_DOWN 若舍弃部分> .5,则作 ROUND_UP;否则,作 ROUND_DOWN 。 ROUND_HALF_EVEN 如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP ;如果它为偶数,则作 ROUND_HALF_DOWN 。 ROUND_HALF_UP 若舍弃部分>=.5,则作 ROUND_UP ;否则,作 ROUND_DOWN 。 ROUND_UNNECESSARY 该“伪舍入模式”实际是指明所要求的操作必须是精确的,,因此不需要舍入操作。 ROUND_UP 总是在非 0 舍弃小数(即截断)之前增加数字。构造子索引BigDecimal(BigInteger) 把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal(BigInteger, int) 把一个 BigInteger 和一个标度翻译成 BigDecimal 。 BigDecimal(double) 把一个 double 型翻译成 BigDecimal 。 BigDecimal(String) 从一个字符串构造 BigDecimal ,该字符串包含一个可选的减号,后面跟着一串零或十进制数字串,再后面是一个可选的小数部分,该小数部分包含一个小数点和一串零或十进制数字串。方法索引abs() 返回一个 BigDecimal ,其值是该数的绝对值,其标度是 this.scale() 。 add(BigDecimal) 返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。 compareTo(BigDecimal) 返回 -1、0 或 1,分别表示该数是小于、等于、或大于 val 。 divide(BigDecimal, int) 返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 divide(BigDecimal, int, int) 返回一个 BigDecimal ,其值是 (this / val),其标度是指定值 。 doubleValue() 把一个数字转换为 double 型。 equals(Object) 如果 x 是一个等于该数字的 BigDecimal ,则返回 true。 floatValue() 把该数字转换为 float 型。 hashCode() 计算该对象的散列码。 intValue() 把该数字转换为 int 值。 longValue() 把该数字转换为 long 型。 max(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较大者。 min(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较小者。 movePointLeft(int) 返回一个 BigDecimal ,其值等于该数十进制小数点向左移动 n 位后所得的值。 movePointRight(int) 把十进制小数点按指定数值向右移动相应位数。 multiply(BigDecimal) 返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。 negate() 返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale() 。 scale() 返回该数值的标度。 setScale(int) 返回一个 BigDecimal ,其标度是指定值,其数值精确等于该数字的值。 setScale(int, int) 返回一个 BigDecimal ,其标度是指定值,其整数值是该 BigDecimal 的整数部分被 10 的适当次幂(保持整个数值不变)乘或者除得到。 signum() 返回该数值的符号(即根据该数的值是正、零或负返回 -1 、 0 或 1 )。 subtract(BigDecimal) 返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。 toBigInteger() 把该数字转换为 BigInteger 。 toString() 返回表示该数字的字符串。 valueOf(long) 按照给定的值和零标度返回一个 BigDecimal 。 valueOf(long, int) 返回一个 BigDecimal ,其值是 (val/10**scale)。变量ROUND_UPpublic static final int ROUND_UP
总是在非零的舍弃小数(即截断)之前增加数字。 注意该舍入模式不减少量值。 (从零开始舍入)?
ROUND_DOWNpublic static final int ROUND_DOWN
从不在舍弃的小数(即截断)之前增加数字。 注意该舍入模式不增加量值。 (舍入到零)?
ROUND_CEILINGpublic static final int ROUND_CEILING
如果 BigDecimal 为正,则作 ROUND_UP 操作;如果为负,则作 ROUND_DOWN 操作。注意该舍入模式不减少值。(舍入到正无穷大)?
ROUND_FLOORpublic static final int ROUND_FLOOR
如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。注意该舍入模式不增加值。(舍入到负无穷大)?
ROUND_HALF_UPpublic static final int ROUND_HALF_UP
若舍弃部分>=.5,则作 ROUND_UP ;否则,则作 ROUND_DOWN (舍入到 “最近的数值”,除非向上舍入和向下舍入的距离是相等的)。?
ROUND_HALF_DOWNpublic static final int ROUND_HALF_DOWN
若舍弃部分> .5 ,则作 ROUND_DOWN;否则,作 ROUND_DOWN 操作(舍入到 “最近的数值”,除非向下舍入和向上舍入的距离相等)。?
ROUND_HALF_EVENpublic static final int ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP 操作;如果它为偶数,则作 ROUND_HALF_DOWN 操作(舍入到 “最近的数值”,除非向到两边的距离相等)。?
ROUND_UNNECESSARYpublic static final int ROUND_UNNECESSARY
该 “伪舍入模式”实际是要求操作有一个精确结果,,因此不需要舍入。如果该舍入模式对一个指定的操作产生不精确的结果,则抛出算术异常。?
构造子BigDecimalpublic BigDecimal(String?val) throws?NumberFormatException
从一个字符串构造 BigDecimal ,该字符串包含可选的减号,后面跟着一串零或十进制数字序列,再后面可能会跟着一个小数部分,该小数部分由一个小数点和一串零或一个十进制数字序列构成。字符串必须至少包含一个整数部分或一个小数部分。作为结果的 BigDecimal 标度将是字符串中十进制小数点右边的数字,如果字符串中未包含十进制小数点则为零。字符到数字的映射是由 Character.digit 提供的。 任何外部字符 (包括空白符) 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
把一个 double 型翻译成 BigDecimal 。BigDecimal 的标度是使 10**scale * val 为一整数的最小数值。 一个 double 值,若为负无穷、正无穷或 NaN 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(BigInteger?val)
把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal 的标度为零。?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
把一个 BigInteger 和一个标度翻译成一个 BigDecimal 。 BigDecimal 的值是 (BigInteger/10**scale) 。 负标度将导致一个 NumberFormatException 异常。
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
构造子索引BigDecimal(BigInteger) 把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal(BigInteger, int) 把一个 BigInteger 和一个标度翻译成 BigDecimal 。 BigDecimal(double) 把一个 double 型翻译成 BigDecimal 。 BigDecimal(String) 从一个字符串构造 BigDecimal ,该字符串包含一个可选的减号,后面跟着一串零或十进制数字串,再后面是一个可选的小数部分,该小数部分包含一个小数点和一串零或十进制数字串。方法索引abs() 返回一个 BigDecimal ,其值是该数的绝对值,其标度是 this.scale() 。 add(BigDecimal) 返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。 compareTo(BigDecimal) 返回 -1、0 或 1,分别表示该数是小于、等于、或大于 val 。 divide(BigDecimal, int) 返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 divide(BigDecimal, int, int) 返回一个 BigDecimal ,其值是 (this / val),其标度是指定值 。 doubleValue() 把一个数字转换为 double 型。 equals(Object) 如果 x 是一个等于该数字的 BigDecimal ,则返回 true。 floatValue() 把该数字转换为 float 型。 hashCode() 计算该对象的散列码。 intValue() 把该数字转换为 int 值。 longValue() 把该数字转换为 long 型。 max(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较大者。 min(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较小者。 movePointLeft(int) 返回一个 BigDecimal ,其值等于该数十进制小数点向左移动 n 位后所得的值。 movePointRight(int) 把十进制小数点按指定数值向右移动相应位数。 multiply(BigDecimal) 返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。 negate() 返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale() 。 scale() 返回该数值的标度。 setScale(int) 返回一个 BigDecimal ,其标度是指定值,其数值精确等于该数字的值。 setScale(int, int) 返回一个 BigDecimal ,其标度是指定值,其整数值是该 BigDecimal 的整数部分被 10 的适当次幂(保持整个数值不变)乘或者除得到。 signum() 返回该数值的符号(即根据该数的值是正、零或负返回 -1 、 0 或 1 )。 subtract(BigDecimal) 返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。 toBigInteger() 把该数字转换为 BigInteger 。 toString() 返回表示该数字的字符串。 valueOf(long) 按照给定的值和零标度返回一个 BigDecimal 。 valueOf(long, int) 返回一个 BigDecimal ,其值是 (val/10**scale)。变量ROUND_UPpublic static final int ROUND_UP
总是在非零的舍弃小数(即截断)之前增加数字。 注意该舍入模式不减少量值。 (从零开始舍入)?
ROUND_DOWNpublic static final int ROUND_DOWN
从不在舍弃的小数(即截断)之前增加数字。 注意该舍入模式不增加量值。 (舍入到零)?
ROUND_CEILINGpublic static final int ROUND_CEILING
如果 BigDecimal 为正,则作 ROUND_UP 操作;如果为负,则作 ROUND_DOWN 操作。注意该舍入模式不减少值。(舍入到正无穷大)?
ROUND_FLOORpublic static final int ROUND_FLOOR
如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。注意该舍入模式不增加值。(舍入到负无穷大)?
ROUND_HALF_UPpublic static final int ROUND_HALF_UP
若舍弃部分>=.5,则作 ROUND_UP ;否则,则作 ROUND_DOWN (舍入到 “最近的数值”,除非向上舍入和向下舍入的距离是相等的)。?
ROUND_HALF_DOWNpublic static final int ROUND_HALF_DOWN
若舍弃部分> .5 ,则作 ROUND_DOWN;否则,作 ROUND_DOWN 操作(舍入到 “最近的数值”,除非向下舍入和向上舍入的距离相等)。?
ROUND_HALF_EVENpublic static final int ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP 操作;如果它为偶数,则作 ROUND_HALF_DOWN 操作(舍入到 “最近的数值”,除非向到两边的距离相等)。?
ROUND_UNNECESSARYpublic static final int ROUND_UNNECESSARY
该 “伪舍入模式”实际是要求操作有一个精确结果,,因此不需要舍入。如果该舍入模式对一个指定的操作产生不精确的结果,则抛出算术异常。?
构造子BigDecimalpublic BigDecimal(String?val) throws?NumberFormatException
从一个字符串构造 BigDecimal ,该字符串包含可选的减号,后面跟着一串零或十进制数字序列,再后面可能会跟着一个小数部分,该小数部分由一个小数点和一串零或一个十进制数字序列构成。字符串必须至少包含一个整数部分或一个小数部分。作为结果的 BigDecimal 标度将是字符串中十进制小数点右边的数字,如果字符串中未包含十进制小数点则为零。字符到数字的映射是由 Character.digit 提供的。 任何外部字符 (包括空白符) 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
把一个 double 型翻译成 BigDecimal 。BigDecimal 的标度是使 10**scale * val 为一整数的最小数值。 一个 double 值,若为负无穷、正无穷或 NaN 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(BigInteger?val)
把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal 的标度为零。?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
把一个 BigInteger 和一个标度翻译成一个 BigDecimal 。 BigDecimal 的值是 (BigInteger/10**scale) 。 负标度将导致一个 NumberFormatException 异常。
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
方法索引abs() 返回一个 BigDecimal ,其值是该数的绝对值,其标度是 this.scale() 。 add(BigDecimal) 返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。 compareTo(BigDecimal) 返回 -1、0 或 1,分别表示该数是小于、等于、或大于 val 。 divide(BigDecimal, int) 返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 divide(BigDecimal, int, int) 返回一个 BigDecimal ,其值是 (this / val),其标度是指定值 。 doubleValue() 把一个数字转换为 double 型。 equals(Object) 如果 x 是一个等于该数字的 BigDecimal ,则返回 true。 floatValue() 把该数字转换为 float 型。 hashCode() 计算该对象的散列码。 intValue() 把该数字转换为 int 值。 longValue() 把该数字转换为 long 型。 max(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较大者。 min(BigDecimal) 返回 BigDecimal ,其值是 this 和 val 中的较小者。 movePointLeft(int) 返回一个 BigDecimal ,其值等于该数十进制小数点向左移动 n 位后所得的值。 movePointRight(int) 把十进制小数点按指定数值向右移动相应位数。 multiply(BigDecimal) 返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。 negate() 返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale() 。 scale() 返回该数值的标度。 setScale(int) 返回一个 BigDecimal ,其标度是指定值,其数值精确等于该数字的值。 setScale(int, int) 返回一个 BigDecimal ,其标度是指定值,其整数值是该 BigDecimal 的整数部分被 10 的适当次幂(保持整个数值不变)乘或者除得到。 signum() 返回该数值的符号(即根据该数的值是正、零或负返回 -1 、 0 或 1 )。 subtract(BigDecimal) 返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。 toBigInteger() 把该数字转换为 BigInteger 。 toString() 返回表示该数字的字符串。 valueOf(long) 按照给定的值和零标度返回一个 BigDecimal 。 valueOf(long, int) 返回一个 BigDecimal ,其值是 (val/10**scale)。变量ROUND_UPpublic static final int ROUND_UP
总是在非零的舍弃小数(即截断)之前增加数字。 注意该舍入模式不减少量值。 (从零开始舍入)?
ROUND_DOWNpublic static final int ROUND_DOWN
从不在舍弃的小数(即截断)之前增加数字。 注意该舍入模式不增加量值。 (舍入到零)?
ROUND_CEILINGpublic static final int ROUND_CEILING
如果 BigDecimal 为正,则作 ROUND_UP 操作;如果为负,则作 ROUND_DOWN 操作。注意该舍入模式不减少值。(舍入到正无穷大)?
ROUND_FLOORpublic static final int ROUND_FLOOR
如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。注意该舍入模式不增加值。(舍入到负无穷大)?
ROUND_HALF_UPpublic static final int ROUND_HALF_UP
若舍弃部分>=.5,则作 ROUND_UP ;否则,则作 ROUND_DOWN (舍入到 “最近的数值”,除非向上舍入和向下舍入的距离是相等的)。?
ROUND_HALF_DOWNpublic static final int ROUND_HALF_DOWN
若舍弃部分> .5 ,则作 ROUND_DOWN;否则,作 ROUND_DOWN 操作(舍入到 “最近的数值”,除非向下舍入和向上舍入的距离相等)。?
ROUND_HALF_EVENpublic static final int ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP 操作;如果它为偶数,则作 ROUND_HALF_DOWN 操作(舍入到 “最近的数值”,除非向到两边的距离相等)。?
ROUND_UNNECESSARYpublic static final int ROUND_UNNECESSARY
该 “伪舍入模式”实际是要求操作有一个精确结果,,因此不需要舍入。如果该舍入模式对一个指定的操作产生不精确的结果,则抛出算术异常。?
构造子BigDecimalpublic BigDecimal(String?val) throws?NumberFormatException
从一个字符串构造 BigDecimal ,该字符串包含可选的减号,后面跟着一串零或十进制数字序列,再后面可能会跟着一个小数部分,该小数部分由一个小数点和一串零或一个十进制数字序列构成。字符串必须至少包含一个整数部分或一个小数部分。作为结果的 BigDecimal 标度将是字符串中十进制小数点右边的数字,如果字符串中未包含十进制小数点则为零。字符到数字的映射是由 Character.digit 提供的。 任何外部字符 (包括空白符) 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
把一个 double 型翻译成 BigDecimal 。BigDecimal 的标度是使 10**scale * val 为一整数的最小数值。 一个 double 值,若为负无穷、正无穷或 NaN 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(BigInteger?val)
把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal 的标度为零。?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
把一个 BigInteger 和一个标度翻译成一个 BigDecimal 。 BigDecimal 的值是 (BigInteger/10**scale) 。 负标度将导致一个 NumberFormatException 异常。
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
变量ROUND_UPpublic static final int ROUND_UP
总是在非零的舍弃小数(即截断)之前增加数字。 注意该舍入模式不减少量值。 (从零开始舍入)?
ROUND_DOWNpublic static final int ROUND_DOWN
从不在舍弃的小数(即截断)之前增加数字。 注意该舍入模式不增加量值。 (舍入到零)?
ROUND_CEILINGpublic static final int ROUND_CEILING
如果 BigDecimal 为正,则作 ROUND_UP 操作;如果为负,则作 ROUND_DOWN 操作。注意该舍入模式不减少值。(舍入到正无穷大)?
ROUND_FLOORpublic static final int ROUND_FLOOR
如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。注意该舍入模式不增加值。(舍入到负无穷大)?
ROUND_HALF_UPpublic static final int ROUND_HALF_UP
若舍弃部分>=.5,则作 ROUND_UP ;否则,则作 ROUND_DOWN (舍入到 “最近的数值”,除非向上舍入和向下舍入的距离是相等的)。?
ROUND_HALF_DOWNpublic static final int ROUND_HALF_DOWN
若舍弃部分> .5 ,则作 ROUND_DOWN;否则,作 ROUND_DOWN 操作(舍入到 “最近的数值”,除非向下舍入和向上舍入的距离相等)。?
ROUND_HALF_EVENpublic static final int ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP 操作;如果它为偶数,则作 ROUND_HALF_DOWN 操作(舍入到 “最近的数值”,除非向到两边的距离相等)。?
ROUND_UNNECESSARYpublic static final int ROUND_UNNECESSARY
该 “伪舍入模式”实际是要求操作有一个精确结果,,因此不需要舍入。如果该舍入模式对一个指定的操作产生不精确的结果,则抛出算术异常。?
构造子BigDecimalpublic BigDecimal(String?val) throws?NumberFormatException
从一个字符串构造 BigDecimal ,该字符串包含可选的减号,后面跟着一串零或十进制数字序列,再后面可能会跟着一个小数部分,该小数部分由一个小数点和一串零或一个十进制数字序列构成。字符串必须至少包含一个整数部分或一个小数部分。作为结果的 BigDecimal 标度将是字符串中十进制小数点右边的数字,如果字符串中未包含十进制小数点则为零。字符到数字的映射是由 Character.digit 提供的。 任何外部字符 (包括空白符) 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
把一个 double 型翻译成 BigDecimal 。BigDecimal 的标度是使 10**scale * val 为一整数的最小数值。 一个 double 值,若为负无穷、正无穷或 NaN 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(BigInteger?val)
把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal 的标度为零。?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
把一个 BigInteger 和一个标度翻译成一个 BigDecimal 。 BigDecimal 的值是 (BigInteger/10**scale) 。 负标度将导致一个 NumberFormatException 异常。
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
?
ROUND_DOWNpublic static final int ROUND_DOWN
?
ROUND_CEILINGpublic static final int ROUND_CEILING
?
ROUND_FLOORpublic static final int ROUND_FLOOR
?
ROUND_HALF_UPpublic static final int ROUND_HALF_UP
?
ROUND_HALF_DOWNpublic static final int ROUND_HALF_DOWN
?
ROUND_HALF_EVENpublic static final int ROUND_HALF_EVEN
?
ROUND_UNNECESSARYpublic static final int ROUND_UNNECESSARY
?
构造子BigDecimalpublic BigDecimal(String?val) throws?NumberFormatException
从一个字符串构造 BigDecimal ,该字符串包含可选的减号,后面跟着一串零或十进制数字序列,再后面可能会跟着一个小数部分,该小数部分由一个小数点和一串零或一个十进制数字序列构成。字符串必须至少包含一个整数部分或一个小数部分。作为结果的 BigDecimal 标度将是字符串中十进制小数点右边的数字,如果字符串中未包含十进制小数点则为零。字符到数字的映射是由 Character.digit 提供的。 任何外部字符 (包括空白符) 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
把一个 double 型翻译成 BigDecimal 。BigDecimal 的标度是使 10**scale * val 为一整数的最小数值。 一个 double 值,若为负无穷、正无穷或 NaN 将导致一个 NumberFormatException 异常。?
BigDecimalpublic BigDecimal(BigInteger?val)
把一个 BigInteger 翻译成 BigDecimal 。 BigDecimal 的标度为零。?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
把一个 BigInteger 和一个标度翻译成一个 BigDecimal 。 BigDecimal 的值是 (BigInteger/10**scale) 。 负标度将导致一个 NumberFormatException 异常。
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
?
BigDecimalpublic BigDecimal(double val) throws?NumberFormatException
?
BigDecimalpublic BigDecimal(BigInteger?val)
?
BigDecimalpublic BigDecimal(BigInteger?val, int scale) throws?NumberFormatException
方法valueOfpublic static?BigDecimal?valueOf(long val, int scale) throws?NumberFormatException
返回一个 BigDecimal ,其值是 (val/10**scale) 。 该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。 一个负标度将导致 NumberFormatException 异常。?
valueOfpublic static?BigDecimal?valueOf(long val)
用给定的值和零标度构造并返回一个 BigDecimal 。该函数首选使用 (long) 构造子,因为它允许对 BigDecimals (如 0 和 1)的频繁使用进行重用,从而消除了输出常数时的这种需要。?
addpublic?BigDecimal?add(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this + val),其标度是 MAX(this.scale(),val.scale) 。?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this - val),其标度是 MAX(this.scale(),val.scale) 。?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
返回一个 BigDecimal ,其值是 (this * val),其标度是 this.scale() + val.scale 。?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this / val),其标度是指定值。如果必须执行舍入对给定的标度生成一个结果,则使用指定的舍入模式。如果 val == 0 ,scale <0 ,或舍入模式是 round_un necessary 并且指定的标度不足以表示除法结果的精确度时,抛出 arithmeticexception 异常;如果 roundingmode 不是有效的舍入模式,则抛出 illegalargumentexception?异常。?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其值是 (this/val),其标度是 this.scale() 。 如果必须执行舍入对给定的标度生成一个结果,则将使用指定的舍入模式。 如果 val == 0 ,则抛出 ArithmeticException 异常。 如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException 异常。?
abspublic?BigDecimal?abs()
返回一个 BigDecimal ,其值是该数字的绝对值,其标度是 this.scale() 。?
negatepublic?BigDecimal?negate()
返回一个 BigDecimal ,其值是 -1 * val ,其标度是 this.scale()。?
signumpublic int signum()
返回该数值的符号 (根据该数的值是正、零或负返回 -1 、 0 或 1 )。?
scalepublic int scale()
返回该数字的标度。?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其整数值是 BigDecimal 整数部分被 10 的适当次幂(保持整个数值不变)除或乘得到的。如果标度被操作减小,则必须除整数部分 (而不是乘),这可能丢失精度;这种情况下,除法将使用指定的舍入模式。 如果标度为负,或者舍入模式是 ROUND_UNNECESSARY 并且它不能执行不丢失精度的调整标度的操作时抛出 ArithmeticException ;如果 roundingMode 不是有效的舍入模式,则抛出 IlegalArgumentException。?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
返回一个 BigDecimal ,其标度是指定值,其值精确等于该数字的值。如果不可能做到则抛出 ArithmeticException 异常。该调用的典型应用是用来增加标度,它确保有一个指定标度和正确数值的 BigDecimal 。 这个调用也可被用来减少标度,如果调用者知道那个数字的小数结尾部分有足够多的零 (比如它的整数部分的十倍数因子),那么就可重新标度而不丢失精度。注意该调用返回的结果同使用两参数版本的 setScale 相同,这样就避免了调用者指定舍入模式这样的麻烦,因为在那种情况下指定舍入模式是不相关的。?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
返回一个 BigDecimal ,它于该数十进制小数点向左移动 n 位后所得的值。若 n 非负,该调用仅把标度增加 n 。若 n 是负的,则该调用等价于调用 movePointRight(-n) ( 该调用返回的 BigDecimal 值是 (this * 10**-n) 并且标度是 MAX(this.scale()+n, 0))。?
movePointRightpublic?BigDecimal?movePointRight(int n)
把小数点按指定数值向右移动相应位数。 如果该数的标度 >= n,该调用只从标度减去 n ;否则它把标度设为零,并且乘以整数值 10 ** (n - this.scale) 。如果 n 是负的,则该调用等价于 movePointLeft(-n)(该调用返回的 BigDecimal 值是 (this * 10**n) 并且标度是 MAX(this.scale()-n, 0))。?
compareTopublic int compareTo(BigDecimal?val)
按照该数值是小于、等于或大于 val分别返回 -1、0 或 1 。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0, 2.00)时,该方法认为它们是相等的。 该方法首选使用所提供的六个逻辑比较运算符 (<, ="=,">, >=, !=, <=)。执行这些比较的惯用方法是: (x.compareto(y)?0),其中?是六个比较符中的一个。?
equalspublic boolean equals(Object?x)
如果 x 等于该数值,则返回 true 。 提供该方法的目的是使 BigDecimals 能被用做散列码关键字。 不同于 compareTo ,当且仅当两个 BigDecimals 的值和标度都相同时,该方法才认为它们两个相等。?
覆盖: 类?Object?中的?equalsminpublic?BigDecimal?min(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较小者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
maxpublic?BigDecimal?max(BigDecimal?val)
返回 BigDecimal ,其值是 this 和 val 中的较大者。 若值相等(根据 compareTo 运算符定义) ,则两者都有可能被返回。?
hashCodepublic int hashCode()
为该对象计算一个散列码。两个 BigDecimals 在数值上相同但有不同的标度 (例如 2.0,2.00)时不会产生相同的散列码。?
覆盖: 类?Object?中的?hashCodetoStringpublic?String?toString()
返回该数值的字符串表示(将使用由 Character.forDigit 提供的数字到字符的映射)。 减号和十进制小数点被用于指示符号和标度( 该表示法和(String, int)构造子是兼容的)。?
覆盖: 类?Object?中的?toStringtoBigIntegerpublic?BigInteger?toBigInteger()
把该数字转换为 BigInteger 。标准的限制原语转换同《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
intValuepublic int intValue()
把该数字转换为一个 int 值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?intValuelongValuepublic long longValue()
把该数字转换为一个 long 型值。 标准的限制原语转换同 《Java 语言规范》一样。 特别要注意的是,该数字的任何小数部分将被截断。?
覆盖: 类?Number?中的?longValuefloatValuepublic float floatValue()
把该数字转换为 float 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为浮点数时,则将它适当地转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?floatValuedoubleValuepublic double doubleValue()
把该数字转换为 double 型。 类似于《Java 语言规范》中定义的 double-to-float 限制原语转换:如果数值太大以致不能表示为双精度数时,则将它适当转换为无穷大或负无穷大。?
覆盖: 类?Number?中的?doubleValue
?
valueOfpublic static?BigDecimal?valueOf(long val)
?
addpublic?BigDecimal?add(BigDecimal?val)
?
subtractpublic?BigDecimal?subtract(BigDecimal?val)
?
multiplypublic?BigDecimal?multiply(BigDecimal?val)
?
dividepublic?BigDecimal?divide(BigDecimal?val, int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
?
dividepublic?BigDecimal?divide(BigDecimal?val, int roundingMode) throws?ArithmeticException,IllegalArgumentException
?
abspublic?BigDecimal?abs()
?
negatepublic?BigDecimal?negate()
?
signumpublic int signum()
?
scalepublic int scale()
?
setScalepublic?BigDecimal?setScale(int scale, int roundingMode) throws?ArithmeticException,IllegalArgumentException
?
setScalepublic?BigDecimal?setScale(int scale) throws?ArithmeticException,?IllegalArgumentException
?
movePointLeftpublic?BigDecimal?movePointLeft(int n)
?
movePointRightpublic?BigDecimal?movePointRight(int n)
?
compareTopublic int compareTo(BigDecimal?val)
?
equalspublic boolean equals(Object?x)
?
public?BigDecimal?min(BigDecimal?val)
?
maxpublic?BigDecimal?max(BigDecimal?val)
?
hashCodepublic int hashCode()
?
public?String?toString()
?
public?BigInteger?toBigInteger()
?
intValuepublic int intValue()
?
public long longValue()
?
public float floatValue()
?
public double doubleValue()
?