隨筆 - 4  文章 - 13  trackbacks - 0
          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

           

          先看下如下代碼:
          double dTest=82.545d;
                DecimalFormat format=new DecimalFormat("0.00");
                System.out.println(format.format(dTest));

          你覺得會(huì)輸出什么?82.55?還是82.54?


          再試下這段代碼:
          double dTest=82.535d;
                DecimalFormat format=new DecimalFormat("0.00");
                System.out.println(format.format(dTest));
          你覺得會(huì)輸出什么?82.53?還是82.54?

          先別猜,自己運(yùn)行下……

          或者有人認(rèn)為這是DecimalFormat的一個(gè)BUG?
          不是的,這其實(shí)是IEEE754標(biāo)準(zhǔn)規(guī)定的一種“to even”的四舍五入的方法,即:
          該方法在省略數(shù)據(jù)只有一個(gè)5的情況下,需要看前面一位。若為偶數(shù)則省略,若為奇數(shù)則進(jìn)位,也就是偶數(shù)優(yōu)先。

          IEEE754規(guī)定了如下的幾種四舍五入的標(biāo)準(zhǔn),分別舉例說明其意義:
           

            away from zero             例:3.215 > 3.22-3.215 > -3.22

          towards zero               例:3.215 > 3.21-3.215 > -3.21

             to even                    例:3.215 > 3.223.245 > 3.24

          towards positive infinity      例:3.215 > 3.22-3.215 > -3.21

           towards negative infinity      例:3.215 > 3.21-3.215 > -3.22


          我們常規(guī)意義上的“四舍五入”是“away from zero”的方式。
          posted on 2008-11-17 16:50 foxinsky 閱讀(2237) 評(píng)論(2)  編輯  收藏

          FeedBack:
          # re: IEEE754標(biāo)準(zhǔn)規(guī)定的五種四舍五入方法 2008-11-19 14:29 paul xu
          既然這樣,那lz何不給出對(duì)應(yīng)的java處理方法  回復(fù)  更多評(píng)論
            
          # re: IEEE754標(biāo)準(zhǔn)規(guī)定的五種四舍五入方法 2008-11-19 15:58 foxinsky
          @paul xu
          方法很簡單,在被格式化的數(shù)據(jù)上加一個(gè)很小很小的正數(shù)即可
          double dTest=82.545d;
          DecimalFormat format=new DecimalFormat("0.00");
          System.out.println(format.format(dTest+0.00000001));

          輸出結(jié)果就是傳統(tǒng)意義上的四舍五入了
            回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 台中市| 德安县| 大同县| 安泽县| 略阳县| 四子王旗| 南郑县| 乌鲁木齐市| 蒙自县| 晋宁县| 合阳县| 阿拉善右旗| 芦溪县| 周宁县| 邹平县| 永兴县| 澜沧| 东丰县| 马鞍山市| 临江市| 当雄县| 田阳县| 当阳市| 和林格尔县| 卓尼县| 会昌县| 历史| 宝应县| 施秉县| 阿拉善右旗| 德昌县| 新竹县| 漯河市| 威宁| 洞头县| 岳阳县| 安宁市| 盐源县| 乌鲁木齐市| 太谷县| 葫芦岛市|