從制造到創造
          軟件工程師成長之路
          posts - 292,  comments - 96,  trackbacks - 0
          要求:將任意位數字輸出為定常格式的字符串,如001,0001等等。

          package com;

          import java.text.DecimalFormat;

          public class FormatNumber {
              
              
          /**
               * 根據參數生成輸出樣式
               * 
               * 
          @param n
               * 
          @return
               
          */
              
          private String initStyle(int n) {
                  String str 
          = "";
                  
          for (int i = 0; i < n; i++) {            
                      str 
          = str + "0";
                  }
                  
                  
          return str;
              }
              
              
          /**
               * 測試
               * 
               * 
          @param args
               
          */
              
          public static void main(String[] args) {
                  FormatNumber fn 
          = new FormatNumber();
                  String style 
          = fn.initStyle(3);
                  
                  DecimalFormat df1 
          = new DecimalFormat(style);
                  
          for (int i = 0; i < 11; i++) {
                      System.out.println(df1.format(i));    
                  }
                  
              }

          }


          輸出結果:

          000
          001
          002
          003
          004
          005
          006
          007
          008
          009
          010

          Java中格式化小數—小數有效位數
          http://blog.csdn.net/haotw/archive/2009/06/26/4301898.aspx

                我剛剛接觸Java編程,在練習中遇到了要把一個Double類型的小數保留到小數點后的幾位,結果在書上沒有找著,郁悶了一天,在網上搜索查找資料,綜合好幾個論壇的答案,終于搞定了。

             這是通過格式化小數實現的,必須把Double類型轉換為String類型,在輸出String類型,下面是我整理得程序,初次發表博客,不妥之處請多多指教……

          /*
           * Double.java
           * 2009.6.26
           * By:tw
           * 用于輸出雙精度數值的小數位數
           
          */
          package dou;
          import java.util.*;
          import java.text.*;
          public class Double{
           
          public static void main(String[] args){
            Scanner input
          =new Scanner(System.in);
            System.out.print(
          "請輸入一個數值:");
            
          double num=input.nextDouble(); //輸入一個數值
            DecimalFormat df=new DecimalFormat("0.0"); //保留一位小數
            DecimalFormat dg=new DecimalFormat("0.00"); //保留兩位小數
            DecimalFormat dh=new DecimalFormat("0.000"); //保留三位小數
            String strnum1=df.format(num); //將num轉換為字符串型
            String strnum2=dg.format(num);
            String strnum3
          =dh.format(num);
            System.out.println(
          "一位小數位:"+strnum1); //輸出一位小數
            System.out.println("兩位小數位:"+strnum2);
            System.out.println(
          "三位小數位:"+strnum3);
           }
          }

          小數部分為零時直接去尾
          http://it577net.javaeye.com/blog/465116

           
           
          /**
               * 去掉小數部分,思路來自于mysql administrator query軟件中顯示float的形式如此,
               * 缺點是返回類型是String,而不是不帶小數部分float,或許會影響前臺加減運算,
               * 但目前用途是js,反正是弱類型的
               *在bean 的 get方法中調用
               * 如doubleNoTail(5.5)=5.5
               * doubleNoTail(5.0)=5
               * 
          @param lengthnum 類型float 或 double
               * 
          @return 字符串符
               * 
          @since 2009-09-08
               
          */
              
          public static String doubleNoTail(float lengthnum) {
                  
          //將參數轉為字符串
                  String str = String.valueOf(lengthnum);
                  
          //獲得小數點位置
                  int index = str.indexOf(".");
                  
          //整數部分
                  String intsub = str.substring(0, index);
                  
          //小數部分
                  String decisub = str.substring(index + 1, str.length());
                  
          //小數部分轉整
                  int decimal = Integer.valueOf(decisub);
                  
          if (decimal == 0) {
                      
          if ("0".equals(intsub)) {
                          
          //整數部分為0,則返回空串
                          return "";
                      } 
          else {
                          
          //小數部分為0,則取整
                          return String.valueOf(Math.round(lengthnum));
                      }
                  } 
          else {
                      
          //小數部分不為0,即帶小數,則原樣返回
                      return str;
                  }
              }



          參考網頁:
          1、使用java.text包格式化數字和日期
          2、 眀海棠文集之數據格式化1.0
          3、Merlin 的魔力: 格式化數值和貨幣
          4、java中的格式化輸出(類似C語言的printf)
          5、Java格式化輸出數字
          6、java中格式化輸出數字
          posted on 2007-09-06 16:10 CoderDream 閱讀(1103) 評論(0)  編輯  收藏 所屬分類: 經驗點滴

          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(9)

          我參與的團隊

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458389
          • 排名 - 114

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 玉树县| 都安| 双柏县| 阿拉善左旗| 普兰县| 全州县| 古浪县| 晋州市| 大名县| 乌拉特前旗| 合山市| 赤水市| 横峰县| 连平县| 兴宁市| 中方县| 丰镇市| 沙雅县| 沈丘县| 孝昌县| 怀安县| 临洮县| 洮南市| 东兰县| 若羌县| 桐乡市| 呼和浩特市| 陆河县| 陕西省| 麻阳| 兴化市| 台中市| 鞍山市| 乌兰浩特市| 泗洪县| 望奎县| 黄山市| 东乡县| 绥棱县| 交口县| 天镇县|