1. 程式人生 > >Java之數字格式化

Java之數字格式化

這個還是比較重要的,主要是在解決實際問題上!
沒有使用格式化的資料規則

  • 看絕對值範圍~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