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

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

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

    java浮點數運算不準確問題的解決

    今天遇到了這樣的問題,就是浮點運算后數據比較出現錯誤,郁悶了半天,網上查了資料才發現浮點數直接用雙目運算符連接會出現結果不準確問題。解決方法如下:
    1。所有浮點運算都在數據庫內做好,也就是都用sql實現了
    2。用BigDecimal實現,方法如下(僅僅是個例子):
    import java.math.BigDecimal;

    public class tt {

     /**
      * @param args
      */
     public static void main(String[] args) {
      float a = 1.1f;
      float b = 2.2f;
      tt t = new tt();
      System.out.println(t.add(a,b));
      System.out.println(t.sub(a,b));
      System.out.println(t.mul(a,b));
      System.out.println(t.div(a,b));
      System.out.println(t.round(a));

     }
     public float add(float v1,float v2){//加法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.add(b2).floatValue();
      }

      public float sub(float v1,float v2){//減法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.subtract(b2).floatValue();
      }

      public float mul(float v1,float v2){//乘法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.multiply(b2).floatValue();
      }

      public float div(float v1,float v2){//除法
       BigDecimal b1 = new BigDecimal(Float.toString(v1));
       BigDecimal b2 = new BigDecimal(Float.toString(v2));
       return b1.divide(b2,3,BigDecimal.ROUND_HALF_UP).floatValue();
      }

      public float round(float v){//截取3位
       BigDecimal b = new BigDecimal(Float.toString(v));
       BigDecimal one = new BigDecimal("1");
       return b.divide(one,3,BigDecimal.ROUND_HALF_UP).floatValue();
      }
    }

    posted on 2006-02-07 09:55 隨風逝 閱讀(3156) 評論(2)  編輯  收藏 所屬分類: java

    評論

    # re: java浮點數運算不準確問題的解決 2006-02-07 11:51 avant  回復  更多評論   

    二進制無法精確表達一些十進制浮點數造成的,《java解惑》第2個謎題就是對此的精到解釋。

    # re: java浮點數運算不準確問題的解決 2006-02-07 11:55 sunny  回復  更多評論   

    謝謝avant朋友解釋,我要去看看這本書:)
    主站蜘蛛池模板: 亚洲XX00视频| 国产高清免费在线| 亚洲AV无码久久精品成人| 亚洲黄片毛片在线观看| 亚洲人成欧美中文字幕| 久久久久免费视频| 在线播放亚洲第一字幕| 亚洲熟妇自偷自拍另欧美| 水蜜桃视频在线观看免费播放高清| 91九色老熟女免费资源站| 亚洲男女一区二区三区| 99久久久国产精品免费无卡顿 | 成人爽A毛片免费看| 狠狠综合久久综合88亚洲| 美女被免费网站91色| 亚洲制服中文字幕第一区| 乱爱性全过程免费视频| 噼里啪啦电影在线观看免费高清| 在线亚洲午夜片AV大片| 免费v片在线观看无遮挡| 亚洲av无码电影网| 日韩成人免费视频播放| 精品无码一级毛片免费视频观看 | 免费一级毛片免费播放| a在线免费观看视频| 国产男女猛烈无遮挡免费网站| 成人午夜免费视频| 亚洲AV人无码激艳猛片| 成人午夜免费福利| 麻豆狠色伊人亚洲综合网站| 国产成人免费片在线视频观看| 久久国产精品免费| 亚洲人成免费网站| 无遮免费网站在线入口| 国产亚洲成在线播放va| 国产一区二区视频免费| 女人隐私秘视频黄www免费| 亚洲av无码久久忘忧草| 亚洲日韩欧洲乱码AV夜夜摸| 久久99九九国产免费看小说| 一边摸一边爽一边叫床免费视频|