Java之數字格式化
阿新 • • 發佈:2019-01-08
這個還是比較重要的,主要是在解決實際問題上!
沒有使用格式化的資料規則
- 看絕對值範圍~0.001~10000000(一千萬)之間的資料,按常規方式顯示
- 若區間在0.001~10000000的資料則實用科學計數法,什麼是科學計數法呢?
這個時候有一位救世主出現了,那就是DecimalFormat類,下面是她的繼承關係!
Class DecimalFormat
java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
模板字元
字元 | 代表意義 |
---|---|
0 | 一位阿拉伯字母,不存在補O |
# | 一位阿拉伯字母,存在則顯示,不存在則不顯示 |
. | 小數點或者是貨幣的小數分割符 |
- | 負號 |
, | 分組分割符 |
E | 用於科學計數法的指數和尾數之間 |
% | 百分數 |
\u2030 | 千分數 |
\u00A4 | 貨幣符號 |
‘ | 讓特殊符號不特殊 |
程式碼測試Format()
有兩種呼叫方法,都需要兩個引數一個是格式,一個是資料。
方法一
import java.text.DecimalFormat;
public class Decimal {
// 數字格式化
public static void main (String[] args) {
String pattern = "00.00";
float number = 1.23f;
DecimalFormat decimalFormat = new DecimalFormat(pattern);
System.out.println(decimalFormat.format(number));
}
}
輸出結果:01.23
方法二
使用applyPattern(pattern)
import java.text.DecimalFormat;
public class Decimal {
// 數字格式化
public static void main(String[] args) {
String pattern = "00.00";
float number = 1.23f;
DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.applyPattern(pattern);
System.out.println(decimalFormat.format(number));
}
}
輸出結果:01.23
接下來做幾個測試樣例,增加應用能力!
模式 | 資料 | 結果 | 說明 |
---|---|---|---|
00.00 | 1.23 | 01.23 | 自動補0 |
00.00 | 1.234 | 01.23 | 刪除了一位 |
00.00 | 512.34 | 512.34 | 沒有動 |
00.00Kg | 1.23 | 01.23Kg | 增加了單位 |
##.## | 1.23 | 1.23 | 沒有動 |
000.00% | 0.23 | 023.00% | 加了%並且*100補了0 |
000.00\u2030 | 0.23 | 230.00‰ | 千分號 |
000.00\u00A4 | 0.23 | 000.00\u00A4 | 貨幣符號 |
程式碼測試setGroup
1. setGroupingUsed(boolean value); 是否支援分組
2. setGroupingSize(int value); 數字分組大小
double number = 12345678.9;
DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setGroupingUsed(true);
decimalFormat.setGroupingSize(3);
System.out.println(decimalFormat.format(number));
輸出結果:12,345,678.9