public static void main(String[] args) {
//方法一 这个的优势是得出的double 使用这个方法还有个问题当num=4.015得到的值是4.01 下面两种方法的结果是4.02
double num = 4.016;
double v1 = (double)Math.round(num*100)/100;
System.out.println(v1);
//输出 4.02
//方法二
num = 4.016;
DecimalFormat formater = new DecimalFormat();
//保留几位小数
formater.setMaximumFractionDigits(2);
//模式 四舍五入
formater.setRoundingMode(RoundingMode.UP);
System.out.println(formater.format(num));
//输出4.02
//方法三 这个方法如果设置scale为0 依然保留一位小数*.0
num = 4.016;
System.out.println(round(num, 2));
//输出 4.02
}
public static double round(double v,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
java中保留double小数位的几种方法
最新推荐文章于 2022-10-29 16:50:29 发布