Java数字格式化显示

导读:本篇文章讲解 Java数字格式化显示,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Java数字格式化显示

简介

  • 在展示较大数字的时候希望展示中文转换后的字,如1.2万

代码

  /**
     * 数字格式化显示
     *
     * <p>小于万默认显示 大于万以1.7万方式显示最大是9999.9万
     *
     * <p>大于亿以1.1亿方式显示最大没有限制都是亿单位
     *
     * @param num
     *     <p>格式化的数字
     * @param kBool
     *     <p>是否格式化千,为true,并且num大于999就显示999+,小于等于999就正常显示
     * @return
     */
    public static String formatNum(String num, Boolean kBool) {
        StringBuffer sb = new StringBuffer();

        if (!StringUtils.isNumeric(num)) {
            return "0";
        }

        if (kBool == null) {
            kBool = false;
        }

        BigDecimal b0 = new BigDecimal("1000");

        BigDecimal b1 = new BigDecimal("10000");

        BigDecimal b2 = new BigDecimal("100000000");

        BigDecimal b3 = new BigDecimal(num);

        String formatNumStr = "";

        String nuit = "";

        // 以千为单位处理

        if (kBool) {
            if (b3.compareTo(b0) == 0 || b3.compareTo(b0) == 1) {
                return "999+";
            }

            return num;
        }

        // 以万为单位处理

        if (b3.compareTo(b1) == -1) {
            sb.append(b3.toString());

        } else if ((b3.compareTo(b1) == 0 && b3.compareTo(b1) == 1) || b3.compareTo(b2) == -1) {

            formatNumStr = b3.divide(b1).toString();

            nuit = "万";

        } else if (b3.compareTo(b2) == 0 || b3.compareTo(b2) == 1) {
            formatNumStr = b3.divide(b2).toString();

            nuit = "亿";
        }

        if (!"".equals(formatNumStr)) {
            int i = formatNumStr.indexOf(".");

            if (i == -1) {
                sb.append(formatNumStr).append(nuit);

            } else {
                i = i + 1;

                String v = formatNumStr.substring(i, i + 1);

                if (!v.equals("0")) {
                    sb.append(formatNumStr.substring(0, i + 1)).append(nuit);

                } else {
                    sb.append(formatNumStr.substring(0, i - 1)).append(nuit);
                }
            }
        }

        if (sb.length() == 0) {
            return "0";
        }

        return sb.toString();
    }

使用方法如下

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/118718.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!