91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Java中高精度整數與高精度小數的區別有哪些

發布時間:2020-12-02 14:58:01 來源:億速云 閱讀:148 作者:Leah 欄目:編程語言

Java中高精度整數與高精度小數的區別有哪些?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

在實際編碼中,會遇到很多高精度的事例,比如,在計算金錢的時候就需要保留高精度小數,這樣計算才不會有太大誤差:

在下面的代碼中,我們驗證了,當兩個float型的數字相加,得到的結果和我們的預期結果是有誤差的,為了減小和防止這種誤差的出現,我們需要使用BigInteger類和BigDecimal類來計算。

package com.ietree.base.number;

import java.math.BigDecimal;
import java.math.BigInteger;

public class BigIntegerTest {

  public static void main(String[] args) {
    float f1 = 123.01f + 2.01f;
    // 預期輸出:125.02,實際輸出:125.020004
    System.out.println(f1);
    // 預期輸出:125.02,實際輸出:125.02000000000001
    System.out.println(123.01 + 2.01);
    System.out.println("===============================");

    // 高精度整數測試
    BigInteger bint1 = new BigInteger("125");
    BigInteger bint2 = new BigInteger("999");
    BigInteger tmp;
    // 相加
    tmp = bint1.add(bint2);
    System.out.println("bint1 + bint2 = " + tmp);
    // 相減
    tmp = bint2.subtract(bint1);
    System.out.println("bint2 - bint1 = " + tmp);
    // 相乘
    tmp = bint1.multiply(bint2);
    System.out.println("bint1 * bint2 = " + tmp);
    // 相除
    tmp = bint2.divide(bint1);
    System.out.println("bint2 / bint1 = " + tmp);
    // 求余數
    tmp = bint2.remainder(bint1);
    System.out.println("bint2 % bint1 = " + tmp);
    // 求次方
    tmp = bint2.pow(2);
    System.out.println("bint2的二次方 = " + tmp);
    System.out.println("======================================");

    // 高精度小數測試
    BigDecimal bd1 = new BigDecimal(123.01);
    BigDecimal bd2 = new BigDecimal(2.01);
    BigDecimal bd;
    // 相加
    bd = bd1.add(bd2);
    System.out.println("bd1 + bd2 = " + bd);
    // 相減
    bd = bd1.subtract(bd2);
    System.out.println("bd2 - bd1 = " + bd);
    // 相乘
    bd = bd1.multiply(bd2);
    System.out.println("bd1 * bd2 = " + bd);
    // 相除
    // bd = bd1.divide(bd2);
    bd = bd1.divide(new BigDecimal(2.0));
    System.out.println("bd1 / 2.0 = " + bd);
    // 求余數
    bd = bd1.remainder(bd2);
    System.out.println("bd2 % bd1 = " + bd);
    // 求次方
    bd = bd1.pow(3);
    System.out.println("bd2的三次方 = " + bd);
    System.out.println("======================================");

    // 四舍五入保留小數位數
    BigDecimal bd3 = new BigDecimal(123.01).setScale(5,5);
    System.out.println("bd3 = " + bd3);
  }
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

嘉峪关市| 嘉鱼县| 双柏县| 襄城县| 瑞丽市| 柏乡县| 同德县| 庆城县| 阿坝县| 泰宁县| 七台河市| 鹿泉市| 丹凤县| 灌阳县| 万载县| 康保县| 贺州市| 壶关县| 内黄县| 区。| 万年县| 香格里拉县| 获嘉县| 渝中区| 班玛县| 石景山区| 巴彦淖尔市| 花莲县| 会宁县| 建阳市| 望江县| 西乌珠穆沁旗| 新兴县| 封开县| 西昌市| 南雄市| 兴化市| 建平县| 遵义市| 新巴尔虎右旗| 怀安县|