隨筆 - 4  文章 - 13  trackbacks - 0
          <2008年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          很奇怪哦,大家看一下這段代碼
           NumberFormat numberFormat=NumberFormat.getNumberInstance();
            numberFormat.setMaximumFractionDigits(2);
            numberFormat.setMinimumFractionDigits(2);
            float f=5.535f;
            double d=5.535;
            System.out.println(numberFormat.format(f));  //輸出值為?
            System.out.println(numberFormat.format(d));//輸出值為?

          看一下輸出1 為5.53
          而輸出2 為5.54

          有哪位兄臺(tái)給我講一下原因呢?
          posted on 2008-09-04 13:55 foxinsky 閱讀(849) 評(píng)論(1)  編輯  收藏

          FeedBack:
          # re: 數(shù)據(jù)精度問題[未登錄] 2008-09-04 23:43 zz
          我的解釋是這樣的:
          format(f)的時(shí)候是將f轉(zhuǎn)換成為了double,需要將double轉(zhuǎn)換為string,然后再格式化。從下面的實(shí)驗(yàn)結(jié)果就可以就可以發(fā)現(xiàn)
          float f=5.535f;
          double d=f;
          double e=5.535;
          System.out.println(f);
          System.out.println(d);
          System.out.println(e);

          5.535
          5.534999847412109
          5.535

          可以得出在toString之后結(jié)果已經(jīng)發(fā)生了變化,所以format的結(jié)果可想而知是
          5.53
          5.54


            回復(fù)  更多評(píng)論
            

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 定南县| 邢台县| 栾川县| 北川| 桃园市| 聂拉木县| 砀山县| 白沙| 苏尼特左旗| 晋州市| 新野县| 忻城县| 兴安县| 噶尔县| 观塘区| 关岭| 昌黎县| 绥棱县| 牙克石市| 大丰市| 阜平县| 汾西县| 藁城市| 平果县| 富裕县| 阿勒泰市| 桂阳县| 调兵山市| 侯马市| 恩施市| 馆陶县| 诸城市| 噶尔县| 文化| 顺昌县| 贵港市| 伊宁市| 浦江县| 化州市| 南充市| 遂溪县|