DecimalFormat數字格式化


DecimalFormat可以按照需要格式化數字,下面簡單介紹一下幾種使用。其中自己也踏踏實實踩了坑,謹此記錄。

保留位數設置
public class DecimalUtils {
 
    //保留2位,不足補0
    private static final DecimalFormat df_fill_zero = new DecimalFormat("00.00");
    //保留2位,不足保留原位數
    private static final DecimalFormat df_fill_null = new DecimalFormat("##.##");


    public static void main (String args[]) {
        System.out.println(df_fill_zero.format(1.2)); //01.20  不足2位補0
        System.out.println(df_fill_null.format(1.2)); //1.2   不足2位保留原數位

        System.out.println(df_fill_zero.format(1.224)); //01.22 超出2位截斷(舍入模式后面再說)
        System.out.println(df_fill_null.format(1.224)); //1.22 超出2位截斷(舍入模式后面再說)

        System.out.println(df_fill_zero.format(123.22)); //123.22
        System.out.println(df_fill_null.format(123.22)); //123.22
    }
}

 

運行結果:

01.20
1.2
01.22
1.22
123.22
123.22

 

舍入模式

默認舍入模式

public class FormatDefault {
  //保留3位,不足保留原位數
    private static final DecimalFormat df_t = new DecimalFormat("#.###");


    public static void main (String args[]) {
        //默認舍入模式(RoundingMode.HALF_EVEN)
        System.out.println(df_t.format(1234.2224)); //1234.222
        System.out.println(df_t.format(1234.2226)); //1234.223

        System.out.println(df_t.format(1234.2225)); //1234.223  最后一位偶數,舍入
        System.out.println(df_t.format(1234.2235)); //1234.223  最后一位奇數,舍去
    }
}

 

四舍五入模式

public class FormatHalfUp {

    /***
     * 最多保存3位小數,如果number少於3位則保留原小數位數,如果多於3位則四舍五入保留3位小數
     */
    public static String formatHalfUp(double number) {
        DecimalFormat df = new DecimalFormat("#.###");
        df.setRoundingMode(RoundingMode.HALF_UP);
        return df.format(BigDecimal.valueOf(number)); //防止精度丟失,數字類型用BigDecimal
    }

    public static void main (String args[]) {
        //四舍五入舍入模式(RoundingMode.HALF_UP)
        System.out.println(formatHalfUp(1234.2224)); //1234.222
        System.out.println(formatHalfUp(1234.2226)); //1234.223

        System.out.println(formatHalfUp(1234.2225)); //1234.223
        System.out.println(formatHalfUp(1234.2235)); //1234.224
    }
} 

 

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM