四舍五入
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 则是不小于他的最小整数
Comments | NOTHING