JavaScript: валюта
денежный формат в JavaScript
Каким образом в JavaScript привести значение к формату местной валюты?
let price = 99n;
console.log(price.toLocaleString("ru-RU", {style: "currency"}));
И какой результат мы увидим в консоли при выполнении такого фрагмента кода?
Попробуем разобраться.
В первой строке мы создали переменную price
и присвоили ей числовое значение в формате BigInt
. Этот формат часто используется для операций с финансами в JavaScript, так как позволяет избежать возможной потери точности при работе с цифрами, значение которых превышает Number.MAX_SAFE_INTEGER
.
Следующим шагом мы пытаемся преобразовать число 99n
в формат местной валюты с помощью функции toLocaleString
.
Следует знать, что функция toLocaleString
должна принимать два аргумента:
-
локаль: например
ru-RU
, определяет формат вывода данных, - объект: содержит опции форматирования.
Одной из опций форматирования может быть style: "currency"
. Если мы указываем именно эту опцию, число будет преобразовано в соответствии с требованиями формата местной валюты.
Например:
let price = 99n;
console.log(price.toLocaleString("ru-RU", {style: "currency", currency: "RUB"}));
console.log(price.toLocaleString("en-US", {style: "currency", currency: "USD"}));
console.log(price.toLocaleString("de-DE", {style: "currency", currency: "EUR"}));
Такой код приведет к соответствующим результатам:
99,00 ₽
$99.00
99,00 €
Но, если внимательно посмотреть на код нашей задачи, мы заметим, что в параметрах нет поля, указывающего на валюту style: "currency"
. Без этой опции форматирование утрачивает смысл и не будет выполнено.
Итак, выполнение нашей задачи приведет к ошибке TypeError: Currency code is required with currency style.
:
let price = 99n;
console.log(price.toLocaleString("ru-RU", {style: "currency"}));
// TypeError: Currency code is required with currency style.
Спасибо за внимание.