Как преобразовать числа Kotlin в K, M и B: руководство для начинающих

Метод 1: использование операторов if-else

Один простой подход — использовать операторы if-else, чтобы проверить величину числа и соответствующим образом преобразовать его. Вот пример:

fun formatNumber(number: Long): String {
    return when {
        number < 1_000 -> number.toString()
        number < 1_000_000 -> "${number / 1_000}K"
        number < 1_000_000_000 -> "${number / 1_000_000}M"
        else -> "${number / 1_000_000_000}B"
    }
}

В этом коде мы проверяем, меньше ли число 1000, и если да, то возвращаем само число. Если число находится в диапазоне от 1000 до 999999, мы делим его на 1000 и добавляем к результату букву «K». Аналогично, для чисел от 1 000 000 до 999 999 999 мы делим на 1 000 000 и добавляем «M». Наконец, если числа больше или равны 1 000 000 000, мы делим их на 1 000 000 000 и добавляем букву “B”.

Метод 2. Использование расширений

Другой подход — создать функцию расширения для типа Long, которая напрямую преобразует число в нужный формат. Вот пример:

fun Long.formatNumber(): String {
    return when {
        this < 1_000 -> this.toString()
        this < 1_000_000 -> "${this / 1_000}K"
        this < 1_000_000_000 -> "${this / 1_000_000}M"
        else -> "${this / 1_000_000_000}B"
    }
}

С помощью этой функции расширения вы можете напрямую вызвать formatNumber()для любого значения Longи получить отформатированную строку.

Метод 3. Использование числового формата

Kotlin предоставляет класс NumberFormat, который позволяет форматировать числа в соответствии с различными локалями и шаблонами. Вот пример:

import java.text.NumberFormat
fun formatNumber(number: Long): String {
    val formatter = NumberFormat.getInstance()
    return formatter.format(number)
}

В этом коде мы создаем экземпляр NumberFormat, используя локаль по умолчанию. Затем мы используем метод format()для форматирования числа в соответствии с правилами локали.

В этой статье мы рассмотрели различные методы преобразования чисел Kotlin в форматы K, M и B. Для этого мы использовали операторы if-else, функции расширения и класс NumberFormat. Теперь вы можете легко форматировать большие числа более читабельным и разговорным способом. Приятного кодирования!