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

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          很奇怪哦,大家看一下這段代碼
           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

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

          FeedBack:
          # re: 數據精度問題[未登錄] 2008-09-04 23:43 zz
          我的解釋是這樣的:
          format(f)的時候是將f轉換成為了double,需要將double轉換為string,然后再格式化。從下面的實驗結果就可以就可以發現
          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之后結果已經發生了變化,所以format的結果可想而知是
          5.53
          5.54


            回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 砚山县| 绥化市| 云和县| 北川| 金秀| 忻城县| 精河县| 屏南县| 长武县| 平定县| 肥东县| 海伦市| 诸暨市| 大丰市| 新巴尔虎右旗| 西丰县| 菏泽市| 信阳市| 濮阳市| 东海县| 英超| 德庆县| 固安县| 东乌珠穆沁旗| 尉犁县| 达州市| 阜南县| 石屏县| 阳谷县| 庆城县| 太湖县| 蕲春县| 玉门市| 大同市| 资溪县| 四会市| 湛江市| 西宁市| 加查县| 红原县| 志丹县|