import java.math.BigDecimal;
import lombok.extern.slf4j.Slf4j;
/**
* 1元 = 10角 = 100分
* 说明:元转换为分,分转换为元
* @author:heshengjin qq:2356899074
* @date 2020年11月26日 下午1:17:12
*/
@Slf4j
public final class YuanJiaoFenUtils {
/**
* 进率:
* 1元 = 10角
* 1角 = 10分
*/
public final static BigDecimal GAP_OF_YUAN_JIAO_FEN = new BigDecimal("10");
/**
* 检查消息提示
*/
public final static String TIPMESSAGE = "请检查参数,方法:{},参数:{}不能为空!";
/**
* 参数:BigDecimal【强制使用字符串创建】,eg:new BigDecimal("1")
* 元转换为角
* 小数位:scale
* 默认ROUND_UP 进位处理:2.224667->2.23
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:32:08
*/
public static BigDecimal yuanToJiao(BigDecimal yuan) {
Assert.notNull(yuan, TIPMESSAGE, "yuanToJiao","yuan");
return yuan.multiply(GAP_OF_YUAN_JIAO_FEN);
}
/**
* 参数:BigDecimal【强制使用字符串创建】,eg:new BigDecimal("1")
* 元转换为分
* 小数位:scale
* 默认ROUND_UP 进位处理:2.224667->2.23
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:21:25
*/
public static BigDecimal yuanToFen(BigDecimal yuan) {
Assert.notNull(yuan, TIPMESSAGE, "yuanToFen","yuan");
return jiaoToFen(yuanToJiao(yuan));
}
/**
* 参数:BigDecimal【强制使用字符串创建】,eg:new BigDecimal("1")
* 角转换为元
* 小数位:scale
* 默认ROUND_UP 进位处理:2.224667->2.23
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:20:55
*/
public static BigDecimal jiaoToYuan(BigDecimal jiao) {
Assert.notNull(jiao, TIPMESSAGE, "jiaoToYuan","jiao");
return jiao.divide(GAP_OF_YUAN_JIAO_FEN);
}
/**
* 参数:BigDecimal【强制使用字符串创建】,eg:new BigDecimal("1")
* 角转换为分
* 小数位:scale
* 默认ROUND_UP 进位处理:2.224667->2.23
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:20:55
*/
public static BigDecimal jiaoToFen(BigDecimal jiao) {
Assert.notNull(jiao, TIPMESSAGE, "jiaoToFen","jiao");
return jiao.multiply(GAP_OF_YUAN_JIAO_FEN);
}
/**
* 参数:BigDecimal【强制使用字符串创建】,eg:new BigDecimal("1")
* 分转换为角
* 小数位:scale
* 默认ROUND_UP 进位处理:2.224667->2.23
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:20:55
*/
public static BigDecimal fenToJiao(BigDecimal fen) {
Assert.notNull(fen, TIPMESSAGE, "fenToJiao","fen");
return fen.divide(GAP_OF_YUAN_JIAO_FEN);
}
/**
* 参数:BigDecimal【强制使用字符串创建】,eg:new BigDecimal("1")
* 分转换为元
* 小数位:scale
* 默认ROUND_UP 进位处理:2.224667->2.23
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:20:55
*/
public static BigDecimal fenToYuan(BigDecimal fen) {
Assert.notNull(fen, TIPMESSAGE, "fenToYuan","fen");
return jiaoToYuan(fenToJiao(fen));
}
/**
* 测试
* @author:heshengjin qq:2356899074
@date 2020年11月26日 下午1:41:21
*/
public static void main(String[] args) {
log.info("测试1.11元转分,转换结果:{} 分",yuanToFen(new BigDecimal("1.11")));
log.info("测试111.00分转元,转换结果:{} 元",fenToYuan(new BigDecimal("111.00")));
}
}
Java元角分互转
最新推荐文章于 2021-12-16 16:19:57 发布