这里以保留两个小数位为例,介绍一下设定特定小数位的方式。
示例:现有一doublue类型数组:double[] nums = {1, 2.0360488891602, 3.0},要求保留数组元素最多2个小数位。
方式1 - 保留2位小数:最多显示2个小数位,当小数位为0时,只显示整数部分
System.out.println("------方式1:new java.text.DecimalFormat(\"#.##\")");
for(double d:nums){
java.text.DecimalFormat df = new java.text.DecimalFormat("#.##");
System.out.println("原值="+d+ "; 处理值="+df.format(d));
}
方式2 - 保留2位小数:固定显示2个小数位
System.out.println();
System.out.println("------方式2:new java.text.DecimalFormat(\"#.00\")");
for(double d:nums){
java.text.DecimalFormat df = new java.text.DecimalFormat("#.00");
System.out.println("原值="+d+ "; 处理值="+df.format(d));
}
方式3 - 保留2位小数:固定显示2个小数位
System.out.println();
System.out.println("------方式3:new BigDecimal(String.valueOf(数值));
for(double d:nums){
BigDecimal bd = new BigDecimal(String.valueOf(d));
System.out.println("原值="+d+ "; 处理值="+bd.setScale(2, BigDecimal.ROUND_HALF_UP));
}
方式4 - 保留2位小数:小数位数1至2位
System.out.println();
System.out.println("------方式4:Math.round(d * 100)/100.0");
for(double d:nums){
long dl = Math.round(d * 100);
System.out.println("原值="+d+ "; 处理值="+(dl / 100.0));
}
输出结果如下图所示: