要求:將任意位數字輸出為定常格式的字符串,如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 閱讀(1102)
評論(0) 編輯 收藏 所屬分類:
經驗點滴