Java之double数据如何保留特定小数位

这里以保留两个小数位为例,介绍一下设定特定小数位的方式。

示例:现有一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));
}

输出结果如下图所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yihanzhi/article/details/86716249
今日推荐