#string #typescript #casting #locale
#строка #typescript #Кастинг #язык
Вопрос:
Я пытаюсь сформировать число, имеющее десятичный разделитель, из строки, чтобы иметь возможность применять метод .toLocaleString() , который нельзя применять к строкам.
const initialString = 122; //number
const decimalStr = initialString.toFixed(initialString); //string
const formattedStr = decimalStr.toLocaleString('de-DE');//error,decimalStr is a string
Если к decimalStr
должно быть применено какое-либо преобразование, десятичные цифры будут потеряны (т.е. decimalStr = decimalStr
или decimalStr = Number(decimalStr)
. => проблема, необходимо сохранить десятичные цифры.
Как я могу сохранить десятичные точки и заставить .toLocaleString () видеть вызывающее значение как число?
Ответ №1:
Number.toLocaleString
Метод принимает второй вызванный аргумент options
. Вы можете использовать этот аргумент для управления количеством разрядов дроби. Следовательно, ваш вызов будет:
const initialNumber = 122;
const formattedStr = initialNumber.toLocaleString('de-DE', {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
Более подробную информацию смотрите здесь.
Также обратите внимание, что оба toFixed
и maximumFractionDigits
имеют ограничения: 100 и 20 соответственно. Итак, приведенный вами пример завершается ошибкой во второй строке.