天天看點

在JAVA中如何求Decimal的相反數,如何求Decimal的負數

1、在JAVA中求Decimal的相反數,隻需要調用negate方法,

public static void main(String[] args) {
        System.out.println(new BigDecimal(10).negate());
        System.out.println(new BigDecimal(-3).negate());
        System.out.println(new BigDecimal(0).negate());
    }
運作結果:
-10
3
0
           

2、BigDecimal常用方法

方法摘要

 BigDecimal

abs()

          傳回 BigDecimal,其值為此 BigDecimal 的絕對值,其标度為 this.scale()。

 BigDecimal

abs(MathContext mc)

          傳回其值為此 BigDecimal 絕對值的 BigDecimal(根據上下文設定進行舍入)。

 BigDecimal

add(BigDecimal augend)

          傳回一個 BigDecimal,其值為 (this + augend),其标度為 max(this.scale(), augend.scale())。

 BigDecimal

add(BigDecimal augend, MathContext mc)

          傳回其值為 (this + augend) 的 BigDecimal(根據上下文設定進行舍入)。

 byte

byteValueExact()

          将此 BigDecimal 轉換為 byte,以檢查丢失的資訊。

 int

compareTo(BigDecimal val)

          将此 BigDecimal 與指定的 BigDecimal 比較。

 BigDecimal

divide(BigDecimal divisor)

          傳回一個 BigDecimal,其值為 (this / divisor),其首選标度為 (this.scale() - divisor.scale());如果無法表示準确的商值(因為它有無窮的十進制擴充),則抛出 ArithmeticException。

 BigDecimal

divide(BigDecimal divisor, int roundingMode)

          傳回一個 BigDecimal,其值為 (this / divisor),其标度為 this.scale()。

 BigDecimal

divide(BigDecimal divisor, int scale, int roundingMode)

          傳回一個 BigDecimal,其值為 (this / divisor),其标度為指定标度。

 BigDecimal

divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

          傳回一個 BigDecimal,其值為 (this / divisor),其标度為指定标度。

 BigDecimal

divide(BigDecimal divisor, MathContext mc)

          傳回其值為 (this / divisor) 的 BigDecimal(根據上下文設定進行舍入)。

 BigDecimal

divide(BigDecimal divisor, RoundingMode roundingMode)

          傳回一個 BigDecimal,其值為 (this / divisor),其标度為 this.scale()。

 BigDecimal[]

divideAndRemainder(BigDecimal divisor)

          傳回由兩個元素組成的 BigDecimal 數組,該數組包含 divideToIntegralValue 的結果,後跟對兩個操作數計算所得到的 remainder。

 BigDecimal[]

divideAndRemainder(BigDecimal divisor, MathContext mc)

          傳回由兩個元素組成的 BigDecimal 數組,該數組包含 divideToIntegralValue 的結果,後跟根據上下文設定對兩個操作數進行舍入計算所得到的 remainder的結果。

 BigDecimal

divideToIntegralValue(BigDecimal divisor)

          傳回 BigDecimal,其值為向下舍入所得商值 (this / divisor) 的整數部分。

 BigDecimal

divideToIntegralValue(BigDecimal divisor, MathContext mc)

          傳回 BigDecimal,其值為 (this / divisor) 的整數部分。

 double

doubleValue()

          将此 BigDecimal 轉換為 double。

 boolean

equals(Object x)

          比較此 BigDecimal 與指定的 Object 的相等性。

 float

floatValue()

          将此 BigDecimal 轉換為 float。

 int

hashCode()

          傳回此 BigDecimal 的哈希碼。

 int

intValue()

          将此 BigDecimal 轉換為 int。

 int

intValueExact()

          将此 BigDecimal 轉換為 int,以檢查丢失的資訊。

 long

longValue()

          将此 BigDecimal 轉換為 long。

 long

longValueExact()

          将此 BigDecimal 轉換為 long,以檢查丢失的資訊。

 BigDecimal

max(BigDecimal val)

          傳回此 BigDecimal 和 val 的最大值。

 BigDecimal

min(BigDecimal val)

          傳回此 BigDecimal 和 val 的最小值。

 BigDecimal

movePointLeft(int n)

          傳回一個 BigDecimal,它等效于将該值的小數點向左移動 n 位。

 BigDecimal

movePointRight(int n)

          傳回一個 BigDecimal,它等效于将該值的小數點向右移動 n 位。

 BigDecimal

multiply(BigDecimal multiplicand)

          傳回一個 BigDecimal,其值為 (this × multiplicand),其标度為 (this.scale() + multiplicand.scale())。

 BigDecimal

multiply(BigDecimal multiplicand, MathContext mc)

          傳回其值為 (this × multiplicand) 的 BigDecimal(根據上下文設定進行舍入)。

 BigDecimal

negate()

          傳回 BigDecimal,其值為 (-this),其标度為 this.scale()。

 BigDecimal

negate(MathContext mc)

          傳回其值為 (-this) 的 BigDecimal(根據上下文設定進行舍入)。

 BigDecimal

plus()

          傳回 BigDecimal,其值為 (+this),其标度為 this.scale()。

 BigDecimal

plus(MathContext mc)

          傳回其值為 (+this) 的 BigDecimal(根據上下文設定進行舍入)。

 BigDecimal

pow(int n)

          傳回其值為 (thisn) 的 BigDecimal,準确計算該幂,使其具有無限精度。

 BigDecimal

pow(int n, MathContext mc)

          傳回其值為 (thisn) 的 BigDecimal。

 int

precision()

          傳回此 BigDecimal 的精度。

 BigDecimal

remainder(BigDecimal divisor)

          傳回其值為 (this % divisor) 的 BigDecimal。

 BigDecimal

remainder(BigDecimal divisor, MathContext mc)

          傳回其值為 (this % divisor) 的 BigDecimal(根據上下文設定進行舍入)。

 BigDecimal

round(MathContext mc)

          傳回根據 MathContext 設定進行舍入後的 BigDecimal。

 int

scale()

          傳回此 BigDecimal 的标度。

 BigDecimal

scaleByPowerOfTen(int n)

          傳回其數值等于 (this * 10n) 的 BigDecimal。

 BigDecimal

setScale(int newScale)

          傳回一個 BigDecimal,其标度為指定值,其值在數值上等于此 BigDecimal 的值。

 BigDecimal

setScale(int newScale, int roundingMode)

          傳回一個 BigDecimal,其标度為指定值,其非标度值通過此 BigDecimal 的非标度值乘以或除以十的适當次幂來确定,以維護其總值。

 BigDecimal

setScale(int newScale, RoundingMode roundingMode)

          傳回 BigDecimal,其标度為指定值,其非标度值通過此 BigDecimal 的非标度值乘以或除以十的适當次幂來确定,以維護其總值。

 short

shortValueExact()

          将此 BigDecimal 轉換為 short,以檢查丢失的資訊。

 int

signum()

          傳回此 BigDecimal 的正負号函數。

 BigDecimal

stripTrailingZeros()

          傳回數值上等于此小數,但從該表示形式移除所有尾部零的 BigDecimal。

 BigDecimal

subtract(BigDecimal subtrahend)

          傳回一個 BigDecimal,其值為 (this - subtrahend),其标度為 max(this.scale(), subtrahend.scale())。

 BigDecimal

subtract(BigDecimal subtrahend, MathContext mc)

          傳回其值為 (this - subtrahend) 的 BigDecimal(根據上下文設定進行舍入)。

 BigInteger

toBigInteger()

          将此 BigDecimal 轉換為 BigInteger。

 BigInteger

toBigIntegerExact()

          将此 BigDecimal 轉換為 BigInteger,以檢查丢失的資訊。

 String

toEngineeringString()

          傳回此 BigDecimal 的字元串表示形式,需要指數時,則使用工程計數法。

 String

toPlainString()

          傳回不帶指數字段的此 BigDecimal 的字元串表示形式。

 String

toString()

          傳回此 BigDecimal 的字元串表示形式,如果需要指數,則使用科學記數法。

 BigDecimal

ulp()

          傳回此 BigDecimal 的 ulp(最後一位的機關)的大小。

 BigInteger

unscaledValue()

          傳回其值為此 BigDecimal 的非标度值 的 BigInteger。

static BigDecimal

valueOf(double val)

          使用 

Double.toString(double)

 方法提供的 double 規範的字元串表示形式将 double 轉換為 BigDecimal。

static BigDecimal

valueOf(long val)

          将 long 值轉換為具有零标度的 BigDecimal。

static BigDecimal

valueOf(long unscaledVal, int scale)

          将 long 非标度值和 int 标度轉換為 BigDecimal。