imcys.com
遵从中二的召唤,来吧少年!

Android 整数数字格式化

数字格式化,提高你的数字可读性

前言

数字格式化,在最近开发中,常常因为数字太长而无法显示,或者说数字太大,读起来吃力,为了解决这些问题,我写了一个数字格式化的方法。这样极大的缩小了数字长度,同时提高了数字可读性,接着看下去吧!!!

实现过程

举个栗子

1000 -> 1000
10000 -> 1万
17900 -> 1.7万

可以看到,当数字大于等于1万时,会进行格式化。这样主要是为了提高数字可读性,和减少占地,但这样也减低了精度,具体数字无法展现。当然,这里使用的转换方法有点蠢,下面我们简单看看代码。

/**
     * 整数数字转整数加汉字 | 整数数字格式化
     * 10000 -> 1万
     *目前最高精确到千万,再大自行添加
     * @param num
     * @return
     */

    public static String DigitalConversion(int num) {
        String OriginallyNum = num + "";
        String result = "";
        if (num >= 10000) {
            int count = LengthNum(num);
            switch (count) {
                case 5:
                    result = OriginallyNum.substring(0, 1) + "." + OriginallyNum.substring(1, 2) + "万";
                    return result;
                case 6:
                    result = OriginallyNum.substring(0, 2) + "." + OriginallyNum.substring(2, 3) + "万";
                    return result;
                case 7:
                    result = OriginallyNum.substring(0, 3) + "." + OriginallyNum.substring(3, 4) + "万";
                    return result;
                default:
                    result = OriginallyNum.substring(0, 4) + "." + OriginallyNum.substring(4, 5) + "万";
                    return result;
            }
        } else {
            return num + "";
        }
    }


    public static int LengthNum(int num) {
        int count = 0; //计数
        while (num >= 1) {
            num /= 10;
            count++;
        }
        return count;
    }

首先,我们传入整数数字,因为最后要输出的是字符串,所以我们先给他化为字符串。

为了提高可读性,但又不对过小数字转换,我们先判断是否大于等于10000,如果小于则直接输出。

下面我们来使用LengthNum(int 待测量数字)这个方法来判断一下有几位数字,因为后面我们需要按照位数来一一对应这个小数点位置。

接下来,按位来匹配,比如匹配到了6位,则代表这是个十万位数字,则先使用字符串数字.substring(0, 2)代表获取前两位数字,也就是拿到十万位和万位数字,接下面加小数点,取千位数字,连接。

输出,大功告成!!!

文末

当然,这将在 BILIBILI AS 被体现出来

算是对之前思路的一个整理,写的蠢,如果对你有帮助,那再好不过了。

萌新杰少

文章作者

I im CYS,一个热爱二次元的大专开发者

发表回复

textsms
account_circle
email

Captcha Code

萌新杰少の秘密基地

Android 整数数字格式化
数字格式化算法,将可读性困难的数字,转换为可读性好的格式。
扫描二维码继续阅读
2021-06-07