一、舍入模式RoundingMode
1、舍入模式RoundingMode为截断Down
public static void main(String[] args) { double num = 11.256; DecimalFormat df = new DecimalFormat("#.##"); // 格式化为两位小数 //指定RoundingMode舍入模式 df.setRoundingMode(RoundingMode.DOWN); // RoundingMode.DOWN表示去掉一位,即截断 String str = df.format(num); System.out.println(str); //11.25 double formatNum = Double.parseDouble(str); System.out.println(formatNum); // 11/25 }
2、舍入模式RoundingMode为四舍五入HALF_UP
public static void main(String[] args) { double num = 11.256; DecimalFormat df = new DecimalFormat("#.##"); // 格式化为两位小数 //指定RoundingMode舍入模式 df.setRoundingMode(RoundingMode.HALF_UP); // 四舍五入 String str = df.format(num); System.out.println(str); // 11.26 double formatNum = Double.parseDouble(str); System.out.println(formatNum); // 11.26 }
3、舍入模式RoundingMode为“始终对非零舍弃部分前面的数字加1” UP
public static void main(String[] args) { double num = 11.254; DecimalFormat df = new DecimalFormat("#.##"); // 格式化为两位小数 //指定RoundingMode舍入模式 df.setRoundingMode(RoundingMode.UP); // 始终对非零舍弃部分前面的数字加 1 String str = df.format(num); System.out.println(str); // 11.26 double formatNum = Double.parseDouble(str); System.out.println(formatNum); // 11.26 }
4、HALF_EVEN -----DecimalFormat默认的RoundingMode为RoundingMode.HALF_EVEN,也称为“银行家舍入法”,主要在美国使用。四舍六入,五分向相邻的偶数舍入。
以下例子为保留小数点1位,那么这种舍入方式下的结果。
1.15–>1.2 1.25–>1.2
5、HALF_DOWN — 五舍六入
2.5 —> 2 2.6 —> 3
二、占位符
1、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
2、#表示数字占位符,实际位数不够时不补零
比实际数字的位数多,不变
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
标签:基本,舍入,format,df,RoundingMode,new,用法,DecimalFormat From: https://www.cnblogs.com/zwh0910/p/17802559.html