要求:将任意位数字输出为定常格式的字符串,如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 阅读(1098)
评论(0) 编辑 收藏 所属分类:
经验点滴