四舍五入

BigDecimal bd = new BigDecimal(average);
  //  average就是需要保留的数
bd = bd.setScale(2, RoundingMode.HALF_UP);  //  返回依然是BigDecimal参数
double f1 = bd.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();   // 返回的是double
double d = 0.200;
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(d))
double d = 3.1415926;
String result = String.format("%.2f",d);

直接截断,不四舍五入

public static String calculateProfit(double doubleValue) {
        // 保留4位小数
        DecimalFormat df = new DecimalFormat("0.0000");
        String result = df.format(doubleValue);
        // 获取小数 . 号第一次出现的位置
        int inde = firstIndexOf(result, ".");
        // 字符串截断
        return result.substring(0, inde + 3);
}

Math

floor 返回不大于的最大整数
round 则是4舍5入的计算,入的时候是到大于它的整数(当-1.5时可见,四舍五入后得到的结果不是我们期待的,解决办法是先对他取绝对值,然后在用round方法)
round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。(正数小数点后大于5则进位;负数小数点后小于以及等于5都舍去,大于5的则进位)
ceil 则是不小于他的最小整数

欢迎欢迎~热烈欢迎~