[记录]
1.保留小数
保留两位小数,java方式,使用NumberFormat来实现,结果四舍五入
double sourcePrice = 4940.20;// sourcePrice = 1514940.20
double reductionPrice = 0.1;
double price = sourcePrice - reductionPrice;
NumberFormat nf = NumberFormat.getNumberInstance();
// notice here
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(price));
输出结果:
(结果中看到是一位,其实是默认去掉了最后一位的0。
即4940.10,最终显示4940.1;
如果计算结果是4940.00,那么最终是4940;)
4,940.1
.
1,514,940.1
2.分隔符
注意上面结果的分隔符,千位分隔符,百万分隔符,……),使用时会直接显示出分隔符,如果想去掉,则使用
nf.setGroupingUsed(false);
输出结果则变成了(无分隔符):
4940.1
.
1514940.1
3.其他方法实现
double number = 12345.5593;// 目标值
System.out.println("---计算-保留2位小数-BigDecimal----------四舍五入--------------");
BigDecimal bigDecimal = new BigDecimal(number);
double resNumber = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(resNumber);
System.out.println("---计算-保留2位小数-DecimalFormat--------四舍五入----------------");
DecimalFormat decimalFormat = new DecimalFormat("#.00");
System.out.println(decimalFormat.format(number));
System.out.println("---计算-保留2位小数-String.format--------四舍五入----------------");
System.out.println(String.format("%.2f", number));
输出结果:
12345.55