1. 程式人生 > >對於浮點數double和float資料DecimalFormat保留小數並且格式化並設定千分位數操作

對於浮點數double和float資料DecimalFormat保留小數並且格式化並設定千分位數操作

//示例一:最多保留兩位小數
System.out.println("--------###,###.##---------------");
System.out.println(new DecimalFormat("###,###.##").format(1231111.58880));//多的四捨五入
System.out.println(new DecimalFormat("###,###.##").format(01111.58880));//多的四捨五入
System.out.println(new DecimalFormat("###,###.##").format(01111.7844));//多的四捨五入
System.out.println(new DecimalFormat("###,###.##").format(01112.98));
System.out.println(new DecimalFormat("###,###.##").format(01113.80));
System.out.println(new DecimalFormat("###,###.##").format(01114.8));
System.out.println(new DecimalFormat("###,###.##").format(01115.00));
System.out.println(new DecimalFormat("###,###.##").format(0.686));
System.out.println(new DecimalFormat("###,###.##").format(0.784));
System.out.println(new DecimalFormat("###,###.##").format(0.88));
System.out.println(new DecimalFormat("###,###.##").format(0.8));
System.out.println(new DecimalFormat("###,###.##").format(0));
//首末有零自動捨去-小數位多的四捨五入

//示例二:預設保留兩位小數(注意:整數為0的小數問題)
System.out.println("--------###,###.00---------------");
System.out.println(new DecimalFormat("###,###.00").format(1111.5888));//多的四捨五入
System.out.println(new DecimalFormat("###,###.00").format(1111.7844));//多的四捨五入
System.out.println(new DecimalFormat("###,###.00").format(1112.98));
System.out.println(new DecimalFormat("###,###.00").format(1113.80));
System.out.println(new DecimalFormat("###,###.00").format(1114.8));//不足的末尾補零
System.out.println(new DecimalFormat("###,###.00").format(1115.00));
System.out.println(new DecimalFormat("###,###.00").format(0.686));
System.out.println(new DecimalFormat("###,###.00").format(0.784));
System.out.println(new DecimalFormat("###,###.00").format(0.88));
System.out.println(new DecimalFormat("###,###.00").format(0.8));
System.out.println(new DecimalFormat("###,###.00").format(0));
//注意:整數為0的小數,會出現整數部分不存在的問題。

//示例三:預設保留兩位小數(解決示例二中,整數為0的小數格式化後整數0消失問題)
System.out.println("--------###,##0.00---------------");
System.out.println(new DecimalFormat("###,##0.00").format(1111.5888));
System.out.println(new DecimalFormat("###,##0.00").format(1111.7844));
System.out.println(new DecimalFormat("###,##0.00").format(1112.98));
System.out.println(new DecimalFormat("###,##0.00").format(1113.80));
System.out.println(new DecimalFormat("###,##0.00").format(1114.8));
System.out.println(new DecimalFormat("###,##0.00").format(1115.00));
System.out.println(new DecimalFormat("###,##0.00").format(0.686));
System.out.println(new DecimalFormat("###,##0.00").format(0.784));
System.out.println(new DecimalFormat("###,##0.00").format(0.88));
System.out.println(new DecimalFormat("###,##0.00").format(0.8));
System.out.println(new DecimalFormat("###,##0.00").format(0));
//在格式化的個位上設定0,保證整數部分為0的時候自動補0。

//示例四:預設保留兩位小數,整數部分設定最小顯示位數
System.out.println("--------000,000.00---------------");
System.out.println(new DecimalFormat("000,000.00").format(12222111.5888));
System.out.println(new DecimalFormat("000,000.00").format(1111.5888));
System.out.println(new DecimalFormat("000,000.00").format(1111.7844));
System.out.println(new DecimalFormat("000,000.00").format(1112.98));
System.out.println(new DecimalFormat("000,000.00").format(1113.80));
System.out.println(new DecimalFormat("000,000.00").format(1114.8));
System.out.println(new DecimalFormat("000,000.00").format(1115.00));
System.out.println(new DecimalFormat("000,000.00").format(0.686));
System.out.println(new DecimalFormat("000,000.00").format(0.784));
System.out.println(new DecimalFormat("000,000.00").format(0.88));
System.out.println(new DecimalFormat("000,000.00").format(0.8));
System.out.println(new DecimalFormat("000,000.00").format(0));
//在格式化的時候保證位數不足的時候自動補0,小數多的時候四捨五入


綜述:
    0:格式化結構比實際數字的位數多,不足的地方用0補上;
    0:格式化結構比實際數字的位數少,(小數部分多餘的四捨五入);

    #:格式化結構比實際數字的位數多,不變;
    #:格式化結構比實際數字的位數少,(小數部分多餘的四捨五入);