一尘不染

如何在JSP中将数字转换为K千M亿和B十亿后缀

jsp

如何在JSP中将数字转换为K千百万M和B十亿后缀

例如

1111作为1.111 K


阅读 381

收藏
2020-06-08

共1个答案

一尘不染

这里改编答案,看起来应该像

public static String withSuffix(long count) {
    if (count < 1000) return "" + count;
    int exp = (int) (Math.log(count) / Math.log(1000));
    return String.format("%.1f %c",
                         count / Math.pow(1000, exp),
                         "kMGTPE".charAt(exp-1));
}

测试代码:

for (long num : new long[] { 0, 27, 999, 1000, 110592,
                             28991029248L, 9223372036854775807L })
   System.out.printf("%20d: %8s%n", num, withSuffix(num));

输出:

                   0:        0
                  27:       27
                 999:      999
                1000:    1.0 k
              110592:  110.6 k
         28991029248:   29.0 G
 9223372036854775807:    9.2 E
2020-06-08