从制造到创造
软件工程师成长之路
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 阅读(1089) 评论(0)  编辑  收藏 所属分类: 经验点滴

只有注册用户登录后才能发表评论。


网站导航:
 

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

常用链接

留言簿(9)

我参与的团队

随笔分类(245)

随笔档案(239)

文章分类(3)

文章档案(3)

收藏夹(576)

友情链接

搜索

  •  

积分与排名

  • 积分 - 454198
  • 排名 - 115

最新评论

阅读排行榜

评论排行榜