Работа с числами в формате местной валюты является важной задачей в разработке, особенно когда речь идет о финансовых приложениях. Рассмотрим, как можно корректно преобразовать число в формат местной валюты с использованием JavaScript.
Пример кода
Допустим, у нас есть переменная price
, содержащая числовое значение в формате BigInt:
let price = 99n;
console.log(price.toLocaleString("ru-RU", {style: "currency"}));
Какой результат мы получим в консоли при выполнении этого кода?
Что происходит в коде?
В первой строке мы создали переменную price
и присвоили ей значение 99n
в формате BigInt. Этот тип данных позволяет работать с очень большими числами, избегая потерь точности, что особенно важно в финансовых расчетах.
Затем мы пытаемся преобразовать число 99n
в формат местной валюты с помощью метода toLocaleString()
. Этот метод может принимать два аргумента:
- Локаль (например,
"ru-RU"
), определяющая, в каком формате будет отображено число.
- Объект с опциями форматирования, в котором можно указать различные параметры, такие как стиль отображения числа.
В нашем примере используется опция style: "currency"
, которая указывает на то, что число должно быть представлено в виде валюты.
Недостающий параметр
Однако, важная деталь была упущена: в настройках форматирования не указана конкретная валюта. В случае использования style: "currency"
, необходимо также указать параметр 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"
, форматирование не будет выполнено, и возникнет ошибка:
let price = 99n;
console.log(price.toLocaleString("ru-RU", {style: "currency"}));
// TypeError: Currency code is required with currency style.
Чтобы избежать этой ошибки, всегда указывайте как стиль форматирования ("currency"
), так и код валюты ("currency": "RUB"
, "USD"
, "EUR"
и т.д.). Это обеспечит корректное отображение числа в формате местной валюты и позволит избежать ошибок в работе вашего приложения.