如何在JSP中将数字转换为K千百万M和B十亿后缀
例如
1111作为1.111 K等
1111
1.111 K
从这里改编答案,看起来应该像
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