java ->大資料運算(BigInteger)

來源:互聯網
上載者:User

標籤:建議   大數   最大   高精度運算   long   divide   1.3   減法   system   

大資料運算BigInteger

  java中long型為最大整數類型,對於超過long型的資料如何去表示呢.在Java的世界中,超過long型的整數已經不能被稱為整數了,它們被封裝成BigInteger對象.在BigInteger類中,實現四則運算都是方法來實現,並不是採用運算子.

  BigInteger類的構造方法:

 BigInteger b = new BigInteger(str);

  構造方法中,採用字串的形式給出整數

四則運算代碼:

public static void main(String[] args) {

     //大資料封裝為BigInteger對象

          BigInteger big1 = new BigInteger("12345678909876543210");

          BigInteger big2 = new BigInteger("98765432101234567890");

          //add實現加法運算

          BigInteger bigAdd = big1.add(big2);

          //subtract實現減法運算

          BigInteger bigSub = big1.subtract(big2);

          //multiply實現乘法運算

          BigInteger bigMul = big1.multiply(big2);

          //divide實現除法運算

          BigInteger bigDiv = big2.divide(big1);

}

BigDecimal

  在程式中執行下列代碼,會出現什麼問題?

    System.out.println(0.09 + 0.01);

    System.out.println(1.0 - 0.32);

    System.out.println(1.015 * 100);

    System.out.println(1.301 / 100);

 double和float類型在運算中很容易丟失精度,造成資料的不準確性,Java提供我們BigDecimal類可以實現浮點數據的高精度運算

   構造方法如下:

  BigDecimal b = new BigDecimal(str);

  建議浮點數據以字串形式給出,因為參數結果是可以預知的

  實現加法減法乘法代碼如下:(運算方法與BigInteger一致)

    public static void main(String[] args) {

          //大資料封裝為BigDecimal對象

          BigDecimal big1 = new BigDecimal("0.09");

          BigDecimal big2 = new BigDecimal("0.01");

          //add實現加法運算

          BigDecimal bigAdd = big1.add(big2);

     

          BigDecimal big3 = new BigDecimal("1.0");

          BigDecimal big4 = new BigDecimal("0.32");

          //subtract實現減法運算

          BigDecimal bigSub = big3.subtract(big4);

         

          BigDecimal big5 = new BigDecimal("1.105");

          BigDecimal big6 = new BigDecimal("100");

          //multiply實現乘法運算

          BigDecimal bigMul = big5.multiply(big6);

  對於浮點數據的除法運算,和整數不同,可能出現無限不迴圈小數,因此需要對所需要的位元進行保留和選擇舍入模式

   BigDecimal b = big1.divide(big2,保留小數點後面幾位,舍入模式)

 // BigDecimal b = big1.divide.(big2,2,BigDecimal.ROUND_DOWN)

 

java ->大資料運算(BigInteger)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.