欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 金额转换帮助类(元转分)

程序员文章站 2022-07-14 22:57:55
...

Java将金额转换为分,分为int类型,元有String类型和BigDecimal。用于日常记录,方便未来使用。


public abstract class MoneyUtils {


    private MoneyUtils() {}

    /**
     * 将单位为元的金额转换为单位为分
     *
     * @param yuan 单位为元的字符型值
     * @return
     */
    public static int yuan2Fen(String yuan) {
        int value = 0;

        try {
            BigDecimal var1 = new BigDecimal(yuan);
            BigDecimal var2 = new BigDecimal(100);
            BigDecimal var3 = var1.multiply(var2);
            value = Integer.parseInt(var3.stripTrailingZeros().toPlainString());
        } catch (Exception e) {
            throw new IllegalArgumentException(String.format("非法金额[%s]", yuan));
        }

        Assert.isTrue(value >= 0, String.format("非法金额[%s]", yuan));
        return value;
    }

    /**
     * 将单位为分的金额转换为单位为元
     * @param fen 单位为分的字符型值
     * @return
     */
    public static String fen2Yuan(int fen) {
        BigDecimal var1 = new BigDecimal(fen);
        BigDecimal var2 = new BigDecimal(100);
        BigDecimal var3 = var1.divide(var2);
        return var3.stripTrailingZeros().toPlainString();
    }

    /**
     * 将单位为分的金额转换为单位为元
     * @param fen 单位为分的字符型值
     * @return
     */
    public static BigDecimal fen2YuanDecimal(int fen) {
        BigDecimal var1 = new BigDecimal(fen);
        BigDecimal var2 = new BigDecimal(100);
        BigDecimal var3 = var1.divide(var2);
        return var3;
    }
}