要求:將任意位數(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;
}
/**
* 測試
*
* @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編程,在練習中遇到了要把一個Double類型的小數(shù)保留到小數(shù)點后的幾位,結(jié)果在書上沒有找著,郁悶了一天,在網(wǎng)上搜索查找資料,綜合好幾個論壇的答案,終于搞定了。
這是通過格式化小數(shù)實現(xiàn)的,必須把Double類型轉(zhuǎn)換為String類型,在輸出String類型,下面是我整理得程序,初次發(fā)表博客,不妥之處請多多指教……
/*
* 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("請輸入一個數(shù)值:");
double num=input.nextDouble(); //輸入一個數(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ù)部分為零時直接去尾
http://it577net.javaeye.com/blog/465116
/**
* 去掉小數(shù)部分,思路來自于mysql administrator query軟件中顯示float的形式如此,
* 缺點是返回類型是String,而不是不帶小數(shù)部分float,或許會影響前臺加減運算,
* 但目前用途是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ù)點位置
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)頁:
1、
使用java.text包格式化數(shù)字和日期
2、
眀海棠文集之數(shù)據(jù)格式化1.0
3、
Merlin 的魔力: 格式化數(shù)值和貨幣
4、
java中的格式化輸出(類似C語言的printf)
5、
Java格式化輸出數(shù)字
6、
java中格式化輸出數(shù)字
posted on 2007-09-06 16:10
CoderDream 閱讀(1102)
評論(0) 編輯 收藏 所屬分類:
經(jīng)驗點滴