All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.loocme.sys.util.CurrencyUtil Maven / Gradle / Ivy

There is a newer version: 7.1.11
Show newest version
package com.loocme.sys.util;

import com.loocme.sys.enums.CurrencyEnum;
import lombok.extern.slf4j.Slf4j;

/**
 * 货币金额帮助类
 * 
 * @author loocme
 * 
 */
@Slf4j
public class CurrencyUtil
{

    /**
     * 将元转换为分
     * 
     * @param value
     *            元
     * @return 分
     */
    public static String yuanToFen(Double value)
    {
        return StringUtil.decimal(value * 100, 0);
    }

    /**
     * 将元转换为分
     * 
     * @param value
     *            元
     * @return 分
     */
    public static String yuanToFen(String value)
    {
        return StringUtil.decimal(StringUtil.getDouble(value) * 100, 0);
    }

    /**
     * 将分转换为元
     * 
     * @param value
     *            分
     * @return 元
     */
    public static String fenToYuan(Long value)
    {
        return StringUtil.format(value / 100.00, "#0.##");
    }

    /**
     * 将分转换为元
     * 
     * @param value
     *            分
     * @return 元
     */
    public static String fenToYuan(String value)
    {
        return StringUtil.format(StringUtil.getLong(value) / 100.00, "#0.##");
    }

    /**
     * 将分格式化为12位,不足前面补0
     * 
     * @param value
     *            分
     * @return 12位金额分
     */
    public static String formatFen(Long value)
    {
        return StringUtil.format(value, "000000000000");
    }

    /**
     * 将分格式化为12位,不足前面补0
     * 
     * @param value
     *            分
     * @return 12位金额分
     */
    public static String formatFen(String value)
    {
        return formatFen(StringUtil.getLong(value));
    }

    /**
     * 根据货币类型格式化显示金额(英文方式分隔,不显示货币符号)
     * 
     * @param value
     *            金额
     * @return 格式化后的金额字符串
     */
    public static String formatCurrency(String value)
    {
        return formatCurrency(value, CurrencyEnum.RMB_EN.type(), false);
    }

    /**
     * 根据货币类型格式化显示金额(不显示货币符号)
     * 
     * @param value
     *            金额
     * @param currency
     *            货币类型
     * @return 格式化后的金额字符串
     */
    public static String formatCurrency(String value, int currency)
    {
        return formatCurrency(value, currency, false);
    }

    /**
     * 根据货币类型格式化显示金额
     * 
     * @param value
     *            金额
     * @param currency
     *            货币类型
     * @param signFlag
     *            是否显示货币符号
     * @return 格式化后的金额字符串
     */
    public static String formatCurrency(String value, int currency,
            boolean signFlag)
    {
        CurrencyEnum cenum = CurrencyEnum.getCurrency(currency);
        if (null == cenum)
        {
            log.error("货币类型({})没有定义", currency);
            return null;
        }
        String format = (signFlag ? cenum.sign() : "") + cenum.format();
        return StringUtil.format(StringUtil.getDouble(value), format);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy