Как конвертировать число в K тысяч M миллионов и B миллиард суффикса в jsp Как я могу преобразовать число в K тысяч M миллионов и B миллиардный суффикс в jsp например 1111 как 1.111 K и т.д. Ответ 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 Ответ 2 //Удалить ноль с 1.0к public static String coolNumberFormat(long count) { if (count < 1000) return "" + count; int exp = (int) (Math.log(count) / Math.log(1000)); DecimalFormat format = new DecimalFormat("0.#"); String value = format.format(count / Math.pow(1000, exp)); return String.format("%s%c", value, "kMBTPE".charAt(exp - 1)); }
Ответ 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
Ответ 2 //Удалить ноль с 1.0к public static String coolNumberFormat(long count) { if (count < 1000) return "" + count; int exp = (int) (Math.log(count) / Math.log(1000)); DecimalFormat format = new DecimalFormat("0.#"); String value = format.format(count / Math.pow(1000, exp)); return String.format("%s%c", value, "kMBTPE".charAt(exp - 1)); }