This commit is contained in:
parent
d04001a56d
commit
d12843664d
@ -1,5 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.pay.util;
|
package cn.iocoder.yudao.module.pay.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
|
||||||
@ -18,10 +20,20 @@ public class MoneyUtils {
|
|||||||
* @return 百分比金额
|
* @return 百分比金额
|
||||||
*/
|
*/
|
||||||
public static Integer calculateRatePrice(Integer price, Double rate) {
|
public static Integer calculateRatePrice(Integer price, Double rate) {
|
||||||
return new BigDecimal(price)
|
return calculateRatePrice(price, rate, 0, RoundingMode.HALF_UP).intValue();
|
||||||
.multiply(BigDecimal.valueOf(rate)) // 乘以
|
}
|
||||||
.setScale(0, RoundingMode.HALF_UP) // 四舍五入
|
|
||||||
.intValue();
|
/**
|
||||||
|
* 计算百分比金额
|
||||||
|
*
|
||||||
|
* @param price 金额
|
||||||
|
* @param rate 百分比,例如说 56.77% 则传入 56.77
|
||||||
|
* @param scale 保留小数位数
|
||||||
|
* @param roundingMode 舍入模式
|
||||||
|
*/
|
||||||
|
public static BigDecimal calculateRatePrice(Number price, Number rate, int scale, RoundingMode roundingMode) {
|
||||||
|
return NumberUtil.toBigDecimal(price).multiply(NumberUtil.toBigDecimal(rate)) // 乘以
|
||||||
|
.divide(BigDecimal.valueOf(100), scale, roundingMode); // 除以 100
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user