DecimalFormat用来格式化十进制数字,入保留小数,科学计算法等等。在DecimalFormat中,有以下几种特殊字符,基本含义解释如下:
0 | 代表一个任意数字,或者是在末尾补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。**/
}