需要掌握:JAVA BigDecimal 类
四舍五入保留2位小数
public BigDecimal setScale(int newScale, int roundingMode)
参数:
- newScale:保留的小数位数
- roundingMode:有以下取值:
- ROUND_CEILING:向正无穷方向舍入
- ROUND_DOWN:向零方向舍入
- ROUND_FLOOR:向负无穷方向舍入
- ROUND_HALF_DOWN:向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
- ROUND_HALF_EVEN:向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN
- ROUND_HALF_UP:向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
- ROUND_UNNECESSARY:计算结果是精确的,不需要舍入模式
- ROUND_UP:向远离0的方向舍入
例子
double f = 1.125;
BigDecimal decimal = new BigDecimal(String.valueOf(f));
System.out.println(decimal);
double res = decimal.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(res);
参考:https://blog.csdn.net/seeseeyoua/article/details/114575869