Как использовать десятичное число без создания ресурса String - PullRequest
1 голос
/ 27 апреля 2020

В Java и Kotlin есть API, который может использоваться для отображения времени без необходимости создания строкового ресурса.

В приведенной ниже строке кода, это значение позволяет указать время 8 часов после полуночи, чтобы автоматически изменить способ отображения в зависимости от локали устройства.

    val timeCustom = LocalTime.of(8, 0)

Есть ли что-то подобное, что можно использовать для десятичного числа, где значение автоматически использует заданный c химический символ в локали? (. или ,).

Например, чтобы описать высоту чего-либо (например, 5 точек 2 метра):

    val decimalNumber = Decimal.of(5,2)

Есть ли что-то подобное?

1 Ответ

4 голосов
/ 27 апреля 2020

Вы можете использовать Locale.getDefault() например

import java.text.NumberFormat;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        Locale currentLocale = Locale.getDefault();

        Integer quantity = 123456;
        Double amount = 345987.246;
        NumberFormat numberFormatter;
        String quantityOut;
        String amountOut;

        numberFormatter = NumberFormat.getNumberInstance(currentLocale);
        quantityOut = numberFormatter.format(quantity);
        amountOut = numberFormatter.format(amount);
        System.out.println(quantityOut);
        System.out.println(amountOut);
    }
}

Выход:

123,456
345,987.246
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...