1. 程式人生 > >DecimalFormat數字格式化用法“0”和“#”的區別

DecimalFormat數字格式化用法“0”和“#”的區別

 先來介紹一下“0”和“#”的區別

1. 以“0”補位時:

如果數字少了,就會補“0”,小數和整數都會補;

如果數字多了,就切掉,但只切小數的末尾,整數不能切;

同時被切掉的小數位會進行四捨五入處理。

2. 以“#”補位時:

如果數字少了,則不處理,不會補“0”,也不會補“#”;

如果數字多了,就切掉,但只切小數的末尾,整數不能切;

同時被切掉的小數位會進行四捨五入處理。

public class PriceUtil {

    public static String decimalFormat(float value) {
        DecimalFormat decimalFormat;
        decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern("0.##");
        return decimalFormat.format(value);
    }

    public static String decimalFormat(double value) {
        DecimalFormat decimalFormat;
        decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern("0.##");
        return decimalFormat.format(value);
    }

    public static String decimalFormat(String value) {
        if(value==null||value.isEmpty())
            return "0.00";
        double d = Double.parseDouble(value);
        DecimalFormat decimalFormat;
        decimalFormat = new DecimalFormat();
        decimalFormat.applyPattern("0.##");
        return decimalFormat.format(d);
    }

}

總結:

1. “0”強制按格式對齊,“#”最充足的情況下以這樣的格式對齊;

2. “#”適用的場景是當小數位超過兩位時,只顯示兩位,但只有一位或沒有,則不需要補“0”;

3.  整數位用多個“#”沒有意義。

大家想用什麼樣的格式,可以自己去組裝。