DecimalFormat用來格式化十進制數字,入保留小數,科學計算法等等。在DecimalFormat中,有以下幾種特殊字元,基本含義解釋如下:
代表一個任意數字,或者是在末尾補0 | |
# | 代表一個不包含0的任意數字 |
. | 小數點占位符 |
, | 分組分隔符占位符 |
- | 減号或者負号,自動在數字前加負号 |
% | 百分比計算,自動的 |
E | 解學計算法 |
下面舉個例子實驗一下:
@Test
public void myTest(){
double dd;
dd = 0.966545;
//保留一位小數,四舍五入
System.out.println(new DecimalFormat("0.0").format(dd)); //1.0
System.out.println(new DecimalFormat("0.#").format(dd)); //1
System.out.println(new DecimalFormat("#.#").format(dd)); //1
System.out.println(new DecimalFormat("#.0").format(dd)); //1.0
//保留兩位位小數,四舍五入
System.out.println(new DecimalFormat("0.00").format(dd)); //0.97
System.out.println(new DecimalFormat("0.##").format(dd)); //0.97
System.out.println(new DecimalFormat("#.##").format(dd)); //0.97
System.out.println(new DecimalFormat("#.00").format(dd)); //.97
//百分比輸出,保留兩位小數
dd = 0.999965;
System.out.println(new DecimalFormat("0.00%").format(dd)); //100.00%
System.out.println(new DecimalFormat("0.##%").format(dd)); //100%
System.out.println(new DecimalFormat("#.##%").format(dd)); //100%
System.out.println(new DecimalFormat("#.00%").format(dd)); //100.00%
//将dd變為負數輸出,保留兩位小數
System.out.println(new DecimalFormat("-0.00").format(dd)); //-1.00
System.out.println(new DecimalFormat("-0.##").format(dd)); //-1
System.out.println(new DecimalFormat("-#.##").format(dd)); //-1
System.out.println(new DecimalFormat("-#.00").format(dd)); //-1.00
/**當為#.#或者是#.##時,如果末尾為0,也就是說小數點之前或者之後為0,則會自動忽略0。**/
}