1.保留两位小数(截断)
下面展示一些 内联代码片
。
double num = 11.256;
DecimalFormat df = new DecimalFormat("#.##");
//指定RoundingMode
df.setRoundingMode(RoundingMode.DOWN);
String str = df.format(num);
double formatNum = Double.parseDouble(str);
System.out.println(formatNum);
2.保留两位小数(四舍五入)
double num = 11.256;
DecimalFormat df = new DecimalFormat("#.##");
//指定RoundingMode
df.setRoundingMode(RoundingMode.HALF_UP);
String str = df.format(num);
double formatNum = Double.parseDouble(str);
System.out.println(formatNum);
3.常用RoundingMode
HALF_EVEN -----DecimalFormat默认的RoundingMode为RoundingMode.HALF_EVEN,也称为“银行家舍入法”,主要在美国使用。四舍六入,五分向相邻的偶数舍入。
以下例子为保留小数点1位,那么这种舍入方式下的结果。
1.15–>1.2 1.25–>1.2
HALF_UP — 四舍五入
HALF_DOWN — 五舍六入
2.5 —> 2
2.6 —> 3
DOWN — 直接截断
UP — 始终对非零舍弃部分前面的数字加 1
3.占位符
0表示数字占位符,实际位数不够时补零
比实际数字的位数多,不足的地方用0补上。
new DecimalFormat(“00.00”).format(3.14) //结果:03.14
new DecimalFormat(“0.000”).format(3.14) //结果: 3.140
new DecimalFormat(“00.000”).format(3.14) //结果:03.140
整数部分比实际数字的位数少,整数部分不改动
小数部分比实际数字的位数少,根据小数部分占位符数量保留小数
new DecimalFormat(“0.000”).format(13.146) //结果:13.146
new DecimalFormat(“00.00”).format(13.146) //结果:13.15
new DecimalFormat(“0.00”).format(13.146) //结果:13.15
#表示数字占位符,实际位数不够时不补零
比实际数字的位数多,不变
new DecimalFormat(“##.##”).format(3.14) //结果:3.14
new DecimalFormat(“#.###”).format(3.14) //结果: 3.14
new DecimalFormat(“##.###”).format(3.14) //结果:3.14
整数部分比实际数字的位数少,整数部分不改动
小数部分比实际数字的位数少,根据小数部分占位符数量保留小数
new DecimalFormat(“#.###”).format(13.146) //结果:13.146
new DecimalFormat(“##.##”).format(13.146) //结果:13.15
new DecimalFormat(“#.##”).format(13.146) //结果:13.15