写 项目时遇到,从后台传来字符串格式的参数进行乘法计算。将其结果四舍五入保留两位小数,写了个方法
主要用到 java.math.BigDecimal这个类
/**
*
* @param js 缴费基数
* @param rate 缴费比例
* @return
*/
private static double payMoney(String js,String rate){
double _js = Double.parseDouble(js);
double _rate = Double.parseDouble(rate);
double pmoney =_js*_rate;
BigDecimal b = new BigDecimal(pmoney);
double rmoney = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
return rmoney;
}
其中 :
ROUND_HALF_UP 表示四舍五入
2 表示保留两位小数
参见 api
public BigDecimal setScale(int newScale, RoundingMode roundingMode)
参数:
newScale
- 要返回的 BigDecimal 值的标度。
roundingMode
- 要应用的舍入模式。
抛出:
ArithmeticException
- 如果 roundingMode==UNNECESSARY,并且指定的标度操作要求进行舍入。
从以下版本开始:
1.5