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

          package com;

          import java.text.DecimalFormat;

          public class FormatNumber {
              
              
          /**
               * 根據(jù)參數(shù)生成輸出樣式
               * 
               * 
          @param n
               * 
          @return
               
          */
              
          private String initStyle(int n) {
                  String str 
          = "";
                  
          for (int i = 0; i < n; i++) {            
                      str 
          = str + "0";
                  }
                  
                  
          return str;
              }
              
              
          /**
               * 測(cè)試
               * 
               * 
          @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));    
                  }
                  
              }

          }


          輸出結(jié)果:

          000
          001
          002
          003
          004
          005
          006
          007
          008
          009
          010

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

                我剛剛接觸Java編程,在練習(xí)中遇到了要把一個(gè)Double類型的小數(shù)保留到小數(shù)點(diǎn)后的幾位,結(jié)果在書上沒(méi)有找著,郁悶了一天,在網(wǎng)上搜索查找資料,綜合好幾個(gè)論壇的答案,終于搞定了。

             這是通過(guò)格式化小數(shù)實(shí)現(xiàn)的,必須把Double類型轉(zhuǎn)換為String類型,在輸出String類型,下面是我整理得程序,初次發(fā)表博客,不妥之處請(qǐng)多多指教……

          /*
           * Double.java
           * 2009.6.26
           * By:tw
           * 用于輸出雙精度數(shù)值的小數(shù)位數(shù)
           
          */
          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(
          "請(qǐng)輸入一個(gè)數(shù)值:");
            
          double num=input.nextDouble(); //輸入一個(gè)數(shù)值
            DecimalFormat df=new DecimalFormat("0.0"); //保留一位小數(shù)
            DecimalFormat dg=new DecimalFormat("0.00"); //保留兩位小數(shù)
            DecimalFormat dh=new DecimalFormat("0.000"); //保留三位小數(shù)
            String strnum1=df.format(num); //將num轉(zhuǎn)換為字符串型
            String strnum2=dg.format(num);
            String strnum3
          =dh.format(num);
            System.out.println(
          "一位小數(shù)位:"+strnum1); //輸出一位小數(shù)
            System.out.println("兩位小數(shù)位:"+strnum2);
            System.out.println(
          "三位小數(shù)位:"+strnum3);
           }
          }

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

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



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

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

          常用鏈接

          留言簿(9)

          我參與的團(tuán)隊(duì)

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458376
          • 排名 - 114

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 通江县| 威海市| 莎车县| 九寨沟县| 正阳县| 中宁县| 开远市| 安塞县| 都江堰市| 手机| 崇信县| 鹤庆县| 莲花县| 广河县| 龙山县| 福海县| 永丰县| 扎兰屯市| 赤城县| 武陟县| 定西市| 锡林浩特市| 云林县| 合肥市| 蓝山县| 绥德县| 瑞丽市| 墨脱县| 开阳县| 左贡县| 贺州市| 喜德县| 岑巩县| 东源县| 菏泽市| 扎兰屯市| 开鲁县| 青海省| 新乡市| 晋城| 乌兰县|