package util;
import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
/**
* 百分比-提成相关计算
*
* @Author xiyan
* @Date 2020/6/17
* @Version 1.0
*/
@Slf4j
public class PercentUtil {
/**
* 百分比转long类型(存数据库)
*
* @param percent 百分比最多两位小数
* @return
*/
public static Long setData(BigDecimal percent) {
if (percent.scale() > 2) {
throw new CustomException("百分比最多输入2位小数");
}
return percent.divide(BigDecimal.valueOf(100)).multiply(BigDecimal.valueOf(10000)).longValue();
}
/**
* long类型转百分比(页面显示)
*
* @param percent
* @return
*/
public static BigDecimal getData(Long percent) {
return BigDecimal.valueOf(percent).divide(BigDecimal.valueOf(10000)).multiply(BigDecimal.valueOf(100)).setScale(2);
}
/**
* 计算提成
*
* @param price 订单价
* @param percent 百分比
* @return
*/
public static BigDecimal getRoyalty(Integer price, Long percent) {
return BigDecimal.valueOf(percent).divide(BigDecimal.valueOf(10000)).multiply(BigDecimal.valueOf(price)).setScale(2);
}
public static void main(String[] args) {
//传入值,存数据库
log.debug(">>" + setData(BigDecimal.valueOf(0.05)));
log.debug(">>" + getData(Long.valueOf(5)));
//数据库取值,显示页面
log.debug(">>" + setData(BigDecimal.valueOf(0.5)));
log.debug(">>" + getData(Long.valueOf(50)));
//提成
log.debug(">>" + getRoyalty(200, Long.valueOf(5)));
//非法输入
log.debug(">>" + setData(BigDecimal.valueOf(0.005)));
}
}
百分比提成工具类
最新推荐文章于 2023-12-24 08:15:00 发布
本文介绍了一种用于处理百分比转换和提成计算的方法,包括将百分比转换为长整型以适配数据库存储,从数据库中读取并转换为百分比显示,以及根据订单价格和提成比例计算实际提成金额。

1419

被折叠的 条评论
为什么被折叠?



