如何格式化长数字?

She*_*lam 9 java numbers number-formatting

如果我有一个100,000,000的数字,我怎么能在字符串中将其表示为"100M"?

Aar*_*rup 8

据我所知,没有图书馆支持缩写数字,但你可以轻松地自己做:

NumberFormat formatter = NumberFormat.getInstance();
String result = null;
if (num % 1000000 == 0 && num != 0) {
   result = formatter.format(num / 1000000) + "M";
} else if (num % 1000 == 0 && num != 0) {
   result = formatter.format(num / 1000) + "K";
} else {
   result = formatter.format(num);
}
Run Code Online (Sandbox Code Playgroud)

当然,这假设你不想缩短像1,234,567.89这样的数字.如果你这样做,那么这个问题就是重复的.