真善美

          勇于承擔責任; 如果你做不到,要提前跟別人說明,不要等到事情發生后再解釋。

            BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
            55 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks
          先看一程序:
          1 public class FloatPoint {
          2     public static void main(String args[]) {
          3         float f = 0.0f;
          4         for (int i = 0; i < 10; i++) {
          5             f += 0.1f;
          6             System.out.println(f);
          7         }
          8     }
          9 }

          程序輸出結果:
          0.1
          0.2
          0.3
          0.4
          0.5
          0.6
          0.70000005
          0.8000001
          0.9000001
          1.0000001
          當加到第七次時,產生5.0E-8的誤差,十次加完,誤差就是1.0E-7。
          所以在商業應用開發中,涉及到金額等浮點數計算時,要控制好誤差的大小。
          如把輸出語句改成
          DecimalFormat df = new DecimalFormat("0.0");
                      System.out.println(df.format(f));
          輸出結果為:
          0.1
          0.2
          0.3
          0.4
          0.5
          0.6
          0.7
          0.8
          0.9
          1.0
          關于浮點數的精確計算,在這里推薦兩篇文章:
          http://blog.csdn.net/sqlxx/archive/2004/09/13/103084.aspx
          http://blog.csdn.net/stevene/archive/2006/01/22/586089.aspx
          第一次開博客,有些工具的用法不是很明白。希望展現效果會好點,請見諒。
          posted on 2007-06-19 14:59 真善美 閱讀(300) 評論(0)  編輯  收藏 所屬分類: Java學習
          主站蜘蛛池模板: 固原市| 菏泽市| 涡阳县| 宜兰县| 兖州市| 五华县| 贵港市| 新余市| 凌海市| 景东| 确山县| 集安市| 铜川市| 潜江市| 汽车| 田东县| 苏尼特左旗| 肥乡县| 汝阳县| 申扎县| 秦皇岛市| 仁怀市| 哈密市| 开化县| 大埔县| 蒲城县| 新和县| 梅河口市| 滨州市| 汤阴县| 正阳县| 江西省| 乳山市| 绥化市| 霍邱县| 兰坪| 西乡县| 林州市| 上杭县| 鱼台县| 车致|