dr.Brain

doctor Brain

мир глазами веб-разработчика

JavaScript: валюта

денежный формат в JavaScript

dr.Brain

время чтения 2 мин.

Photo by Jason Leung on Unsplash

Каким образом в JavaScript привести значение к формату местной валюты?

let price = 99n;
console.log(price.toLocaleString("ru-RU", {style: "currency"}));

И какой результат мы увидим в консоли при выполнении такого фрагмента кода?

Попробуем разобраться.

В первой строке мы создали переменную price и присвоили ей числовое значение в формате BigInt. Этот формат часто используется для операций с финансами в JavaScript, так как позволяет избежать возможной потери точности при работе с цифрами, значение которых превышает Number.MAX_SAFE_INTEGER.

Следующим шагом мы пытаемся преобразовать число 99n в формат местной валюты с помощью функции toLocaleString.

Следует знать, что функция toLocaleString должна принимать два аргумента:

  1. локаль: например ru-RU, определяет формат вывода данных,
  2. объект: содержит опции форматирования.

Одной из опций форматирования может быть 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.

Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.