<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java處理浮點數

    Posted on 2010-07-27 18:22 leekiang 閱讀(1297) 評論(0)  編輯  收藏 所屬分類: java
    ??? public void testBigDecimalEquals() {
    ?? ???? assertEquals(new BigDecimal("3.50"),new BigDecimal("3.5"));//不相等
    ?? ?}

    ?System.out.println(0.030*100);//輸出3.0
    ?System.out.println(0.031*100);//輸出3.1
    ?System.out.println(0.032*100);//輸出3.2
    ?System.out.println(0.033*100);//輸出3.3000000000000003
    ?System.out.println(0.034*100);//輸出3.4000000000000004
    ?System.out.println(0.035*100);//輸出3.5000000000000004
    ?System.out.println(0.036*100);//輸出3.5999999999999996
    ?System.out.println(0.037*100);//輸出3.6999999999999997
    ?System.out.println(0.038*100);//輸出3.8
    ?System.out.println(0.039*100);//輸出3.9
    ?
    ?BigDecimal b2 = new BigDecimal(0.236);
    ?System.out.println(b2);//輸出0.2359999999999999875655021241982467472553253173828125
    ?
    ?描述:
    ?當我們使用一些"特殊的數字"進行運算時,或者調用BigDecimal中new BigDecimal(double val)進行構造的時候,將得到意想不到的結果。
    ?原因:
    ?Java中,浮點類型是依據IEEE754標準的。IEEE754定義了32位和64位雙精度兩種浮點二進制小數標準。采用二進制表示double,float等浮點數是不準確的。
    同時BigDecimal的API聲明,建議使用new BigDecimal(String val)進行構造,使用new BigDecimal(double val)進行構造的時候,將得到意想不到的結果(The results of this constructor can be somewhat unpredictable)。

    解決辦法:
    1,通過String結合BigDecimal來轉換。
    String val = "0.236";
    //使用new BigDecimal(String val)進行構造
    BigDecimal a = new BigDecimal(""+val);
    BigDecimal b = new BigDecimal(""+100);
    //小數的位數與構造參數的位數一致
    System.out.println(a.multiply(b));//輸出23.600

    2,使用DecimalFormat來確定小數點后位數
    double val = 0.236*100;
    //保留小數點后兩位,若保留三位為"#.000"
    DecimalFormat df = new DecimalFormat("#.00");
    String str = df.format(val);
    System.out.println(Double.valueOf(str));//輸出23.6

    感謝
    http://www.tkk7.com/kalman03/archive/2010/10/25/336121.html
    主站蜘蛛池模板: 久久er国产精品免费观看8| 久久国产色AV免费观看| 色www永久免费网站| 巨波霸乳在线永久免费视频| 免费v片视频在线观看视频| 久久亚洲AV午夜福利精品一区| 亚洲人成网站在线在线观看| 大地资源在线资源免费观看 | 羞羞视频免费网站在线看| 亚洲欧洲久久av| 亚洲av无码一区二区三区人妖| 99视频在线精品免费| 伊人婷婷综合缴情亚洲五月| 亚洲精品无码专区在线播放| 真实乱视频国产免费观看| 香蕉大伊亚洲人在线观看| 免费看国产精品3a黄的视频| 亚洲AV无码成人精品区蜜桃| 一级做a爰性色毛片免费| 日韩激情淫片免费看| 国产精品高清视亚洲精品| 日韩免费高清大片在线| 亚洲天堂一区在线| 最近免费2019中文字幕大全| 亚洲一区中文字幕在线电影网 | 免费国产综合视频在线看 | 亚洲avav天堂av在线网爱情| 免费看大美女大黄大色| 一级女性全黄久久生活片免费| 免费看美女被靠到爽的视频| gogo免费在线观看| 亚洲国产人成精品| 国产亚洲精品免费| 免费永久在线观看黄网站| 亚洲成a人无码亚洲成www牛牛| 啦啦啦中文在线观看电视剧免费版| 爱爱帝国亚洲一区二区三区| 免费精品国产自产拍观看| 97人妻精品全国免费视频 | 欧洲美熟女乱又伦免费视频| 91国内免费在线视频|