BigDecimal类型转化为万或亿为结尾

BigDecimal类型 自动转化单位(万\亿)工具类

import java.math.BigDecimal;
/**
 * @author litong
 */
public class NumberUtil {
    
    
    private static final String UNIT_STRING_WAN = "万";
    private static final String UNIT_STRING_YI = "亿";
    /**
     * 装换为万或亿为结尾
     *
     * @param amount 结果
     * @return
     */
    public static String formatNumber(BigDecimal amount) {
    
    
        if (amount == null) {
    
    
            return "0";
        }
        if (amount.compareTo(new BigDecimal(10000)) < 0) {
    
    
            //如果小于1万
            return amount.stripTrailingZeros().toPlainString();
        }
        if (amount.compareTo(new BigDecimal(10000000)) < 0) {
    
    
            //如果大于1万小于1亿
            return amount.divide(new BigDecimal(10000), 2, BigDecimal.ROUND_DOWN).stripTrailingZeros().toPlainString() + UNIT_STRING_WAN;
        }
        return amount.divide(new BigDecimal(100000000), 2, BigDecimal.ROUND_DOWN).stripTrailingZeros().toPlainString() + UNIT_STRING_YI;
    }

    public static void main(String[] args) {
    
    
        System.out.println(formatNumber(BigDecimal.valueOf(1888L)));  //1888
        System.out.println(formatNumber(BigDecimal.valueOf(18888L)));  //1.88万
        System.out.println(formatNumber(BigDecimal.valueOf(188888888L)));  //1.88亿
    }
}

猜你喜欢

转载自blog.csdn.net/LitongZero/article/details/104204382