<strong id="105k0"><address id="105k0"></address></strong>

<strong id="105k0"></strong><em id="105k0"><rp id="105k0"></rp></em>
      <ruby id="105k0"></ruby>
    
    
      <strong id="105k0"></strong>

      <strong id="105k0"></strong>

    1. 歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
      阿里巴巴誠信通企業(yè)
      全國咨詢(xún)熱線(xiàn):40000-63966
      興邦電子,中國水控機第一品牌

      聯(lián)系興邦電子

      全國咨詢(xún)熱線(xiàn):40000-63966

      售后:0371-55132951/55132952

      工廠(chǎng):河南省 鄭州市 高新區蓮花街電子電器產(chǎn)業(yè)園

      金融數據類(lèi)型

      文章出處:http://www.psychicreadingswithdeb.com 作者:興邦開(kāi)發(fā)部 人氣: 發(fā)表時(shí)間:2016年11月04日

      [文章內容簡(jiǎn)介]:金融數據類(lèi)型

      float和double類(lèi)型的主要設計目標是為了科學(xué)計算和工程計算。他們執行二進(jìn)制浮點(diǎn)運算,這是為了在廣域數值范圍上提供較為精確的快速近似計算而精心設計的。然而,它們沒(méi)有提供完全精確的結果,所以不應該被用于要求精確結果的場(chǎng)合。但是,商業(yè)計算往往要求結果精確,這時(shí)候就要使用BigDecimal。
      BigDecimal簡(jiǎn)介
        BigDecimal 由任意精度的整數非標度值 和32 位的整數標度 (scale) 組成。如果為零或正數,則標度是小數點(diǎn)后的位數。如果為負數,則將該數的非標度值乘以 10 的負scale 次冪。因此,BigDecimal表示的數值是(unscaledValue × 10-scale)。
      測試代碼
      1.構造函數(主要測試參數類(lèi)型為double和String的兩個(gè)常用構造函數)
      BigDecimal aDouble =new BigDecimal(1.22);
      System.out.println("construct with a double value: " + aDouble);
      BigDecimal aString = new BigDecimal("1.22");
      輸出結果是什么呢?
      如果沒(méi)有認為第一個(gè)會(huì )輸出1.22,那么恭喜你答對了,輸出結果如下:
      construct with a doublevalue:
      1.2199999999999999733546474089962430298328399658203125
      construct with a String value: 1.22
        在JDK的描述:1、參數類(lèi)型為double的構造方法的結果有一定的不可預知性。有人可能認為在Java中寫(xiě)入newBigDecimal(0.1)所創(chuàng )建的BigDecimal正好等于 0.1(非標度值 1,其標度為 1),但是它實(shí)際上等于0.1000000000000000055511151231257827021181583404541015625。這是因為0.1無(wú)法準確地表示為 double(或者說(shuō)對于該情況,不能表示為任何有限長(cháng)度的二進(jìn)制小數)。這樣,傳入到構造方法的值不會(huì )正好等于 0.1(雖然表面上等于該值)。
         另一方面,String 構造方法是完全可預知的:寫(xiě)入 newBigDecimal("0.1") 將創(chuàng )建一個(gè) BigDecimal,它正好等于預期的 0.1。因此,比較而言,通常建議優(yōu)先使用String構造方法。
        當double必須用作BigDecimal的源時(shí),請注意,此構造方法提供了一個(gè)準確轉換;它不提供與以下操作相同的結果:先使用Double.toString(double)方法,然后使用BigDecimal(String)構造方法,將double轉換為String。要獲取該結果,請使用static valueOf(double)方法。
      2 加法操作
         BigDecimal a =new BigDecimal("1.22");
         System.out.println("construct with a String value: " + a);
          BigDecimal b =new BigDecimal("2.22");
         a.add(b);
         System.out.println("aplus b is : " + a);
       很容易我們會(huì )認為會(huì )輸出:
         construct with a Stringvalue: 1.22
         a plus b is :3.44
         但實(shí)際上a plus b is : 1.22
      總結
      (1)商業(yè)計算使用BigDecimal。
      (2)盡量使用參數類(lèi)型為String的構造函數。
      (3) BigDecimal都是不可變的(immutable)的,在進(jìn)行每一步運算時(shí),都會(huì )產(chǎn)生一個(gè)新的對象,所以在做加減乘除運算時(shí)千萬(wàn)要保存操作后的值。
       (4)我們往往容易忽略JDK底層的一些實(shí)現細節,導致出現錯誤,需要多加注意。

      本文關(guān)鍵詞:BS一卡通,售飯,水控
      上一篇:IIS建立Web服務(wù)[ 10-22 ] 下一篇:MAP的使用[ 11-04 ]
      回到頂部
      99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
      <strong id="105k0"><address id="105k0"></address></strong>

      <strong id="105k0"></strong><em id="105k0"><rp id="105k0"></rp></em>
        <ruby id="105k0"></ruby>
      
      
        <strong id="105k0"></strong>

        <strong id="105k0"></strong>