java将数字单位化为万或者亿

复制代码
 1 public class NumberUtils {
 2  
 3     private static final String MILLION_UNIT = "万";
 4     private static final String BILLION_UNIT = "亿";
 5     private static final BigDecimal ONE_HUNDRED_THOUSAND = new BigDecimal(100000);
 6     private static final BigDecimal ONE_HUNDRED_MILLION = new BigDecimal(100000000);
 7     private static final BigDecimal TEN_THOUSAND = new BigDecimal(10000);
 8  
 9     /**
10      * 将数字转换成以万为单位或者以亿为单位,因为在前端数字太大显示有问题
11      * @param amount
12      * @return
13      */
14     public static String amountConversion(BigDecimal amount){
15         if (amount == null) {
16             return null;
17         }
18         if (amount.abs().compareTo(ONE_HUNDRED_THOUSAND) < 0) {
19             //如果小于10万
20             return amount.stripTrailingZeros().toPlainString();
21         }
22         if (amount.abs().compareTo(ONE_HUNDRED_MILLION) < 0) {
23             //如果大于10万小于1亿
24             return amount.divide(TEN_THOUSAND, 4, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + MILLION_UNIT;
25         }
26         return amount.divide(ONE_HUNDRED_MILLION, 4, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString() + BILLION_UNIT;
27     }
28  
29     /**
30      * 将数字转换成以亿为单位
31      * @param amount
32      * @return
33      */
34     public static Double amountConversionBillion(BigDecimal amount){
35         if (amount == null) {
36             return null;
37         }
38         return amount.divide(ONE_HUNDRED_MILLION, 2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().doubleValue();
39     }
40 }
复制代码

 

posted @   酷盖的小机灵  阅读(2364)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示