参考链接:
Java中double保留两位小数的四种方法 - 古家杰 - 博客园 (cnblogs.com)
java double类型保留两位小数4种方法_huaism的博客-CSDN博客
/*** Math.floor()向上取整:通过该函数计算后的返回值是舍去小数点后的数值*/double floor = Math.floor(3.0);System.out.println("floor = " + floor);// floor = 3.0double floor1 = Math.floor(3.3);System.out.println("floor1 = " + floor1);// floor1 = 3.0double floor2 = Math.floor(3.7);System.out.println("floor2 = " + floor2);// floor2 = 3.0
/*** Math.ceil()向下取整:ceil函数只要小数点非0,将返回整数部分+1*/double ceil = Math.ceil(4.0);System.out.println("ceil = " + ceil);// ceil = 4.0double ceil1 = Math.ceil(4.3);System.out.println("ceil1 = " + ceil1);// ceil1 = 5.0double ceil2 = Math.ceil(4.8);System.out.println("ceil2 = " + ceil2);// ceil1 = 5.0
double decimal = 3.1415926;// 1. 使用BigDecimal的setScale方法BigDecimal oneDecimal = new BigDecimal(decimal);double v1 = oneDecimal.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();System.out.println("v1 = " + v1);// v1 = 3.1// 2. 使用DecimalFormatDecimalFormat format1 = new DecimalFormat("#.0");String format11 = format1.format(decimal);double v11 = Double.parseDouble(format11);System.out.println("v11 = " + v11);// v11 = 3.1// 3. 使用Sting自带的format方法String format111 = String.format("%.1f", decimal);double v111 = Double.parseDouble(format111);System.out.println("v111 = " + v111);// v111 = 3.1// 4. 使用NumberFormat设置最大小数位数NumberFormat instance1111= NumberFormat.getInstance();instance1111.setMaximumFractionDigits(1);String format1111 = instance1111.format(decimal);double v1111 = Double.parseDouble(format1111);System.out.println("v1111 = " + v1111);// v11111 = 3.1// 或NumberFormat numberInstance11111 = NumberFormat.getNumberInstance();numberInstance11111.setMaximumFractionDigits(1);String format11111 = numberInstance11111.format(decimal);double v11111 = Double.parseDouble(format11111);System.out.println("v11111 = " + v11111);// v22222 = 3.14
double decimal = 3.1415926;// 1. 使用BigDecimal的setScale方法BigDecimal twoDecimal = new BigDecimal(decimal);double v2 = twoDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();System.out.println("v2 = " + v2);// v2 = 3.14// 2. 使用DecimalFormatDecimalFormat format2 = new DecimalFormat("#.00");String format22 = format2.format(decimal);double v22 = Double.parseDouble(format22);System.out.println("v22 = " + v22);// v22 = 3.14// 3. 使用Sting自带的format方法String format222 = String.format("%.2f", decimal);double v222 = Double.parseDouble(format222);System.out.println("v222 = " + v222);// v222 = 3.14// 4. 使用NumberFormat设置最大小数位数NumberFormat instance2222 = NumberFormat.getInstance();instance2222.setMaximumFractionDigits(2);String format2222 = instance2222.format(decimal);double v2222 = Double.parseDouble(format2222);System.out.println("v2222 = " + v2222);// v2222 = 3.14// 或NumberFormat numberInstance22222 = NumberFormat.getNumberInstance();numberInstance22222.setMaximumFractionDigits(2);String format22222 = numberInstance22222.format(decimal);double v22222 = Double.parseDouble(format22222);System.out.println("v22222 = " + v22222);// v22222 = 3.14
上一篇:90分钟战报-沙特1-1韩国进加时 曹圭成第99分钟绝平 亚洲杯沙特阿拉伯4:0击败朝鲜 亚洲杯四分之一决赛韩国沙特
下一篇:阿姆拉巴特从背后撞倒对手破坏单刀染直红,南非凭任意球杀死比赛 阿姆拉巴特从背后撞倒对手破坏单刀染直红,南非凭任意球杀死比赛