亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

浮點運算如何在Java項目中實現

發布時間:2020-11-23 17:06:50 來源:億速云 閱讀:173 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關浮點運算如何在Java項目中實現,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Java中浮點運算對于很多值浮點數都是采用其能夠表示的離目標值最近的數來表示,這有可能會在計算中帶來不易覺察的誤差。

如下所例:

public class ssss {
  public static void main(String[] ages){
    double d1=2.07;
    double d2=1.03;
    System.out.println(d1+d2);
  }
}

結果:

浮點運算如何在Java項目中實現

雖然計算結果離精確值誤差很小,但其不是精確的!這在像如金融計算一樣計算精確度要求很高的領域是無法接受的,但這是二進制本身的問題,而計算機普遍采用二進制表示,使用基本數據類型無法解決。

為了解決基本數據類型浮點數不能進行精確計算的問題,Java中專門提供了java.math.BigDecimal類,其提供浮點數的精確計算功能。與BigInteger類相同,其運算操作均使用方法調用完成

demo

public class ssss {
  public static void main(String[] ages){
    BigDecimal b1=new BigDecimal("2.07");
    BigDecimal b2=new BigDecimal("1.03");
    System.out.println("相加運算:");
    System.out.println("b1:"+b1);
    System.out.println("b2:"+b2);
    System.out.println("相加值:"+b1.add(b2));
  }
}

輸出值:

浮點運算如何在Java項目中實現

其余函數參造下表

 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。

上述就是小編為大家分享的浮點運算如何在Java項目中實現了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

信丰县| 五常市| 宜黄县| 措美县| 精河县| 永靖县| 白银市| 涞源县| 甘泉县| 临泉县| 当雄县| 武邑县| 喀喇| 石渠县| 微山县| 梅河口市| 古浪县| 阜阳市| 石泉县| 西贡区| 闻喜县| 金沙县| 华宁县| 安庆市| 阿巴嘎旗| 辽源市| 乐陵市| 五常市| 睢宁县| 临泉县| 遵化市| 白河县| 新化县| 闻喜县| 越西县| 双牌县| 黄大仙区| 叙永县| 惠安县| 宜兰县| 姜堰市|