Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
30 Июл 2023
2 мин
307

Форматирование чисел как строк валюты в JavaScript

Типичная проблема, с которой часто сталкиваются разработчики JavaScript — это форматирование чисел в виде строк валюты. Например, есть число 2500.00, и требуется

Типичная проблема, с которой часто сталкиваются разработчики JavaScript — это форматирование чисел в виде строк валюты. Например, есть число 2500.00, и требуется отформатировать его как строку вида «$ 2,500.00».

Первое, что стоит знать — JavaScript не имеет встроенной функции для форматирования чисел в виде валюты. Но это не означает, что такое форматирование невозможно — на самом деле, есть несколько способов решить эту проблему.

Один из способов — использовать метод toLocaleString(). Этот метод преобразует число в строку, используя локальные настройки. Например:

let number = 2500.00;
let formattedNumber = number.toLocaleString('en-US', {style: 'currency', currency: 'USD'});

В этом коде значение en-US указывает на использование американского стандарта форматирования чисел, а {style: 'currency', currency: 'USD'} — на необходимость форматировать число как валюту в долларах США. Результатом выполнения этого кода будет строка «$2,500.00».

Этот метод достаточно гибкий и позволяет форматировать числа в валюту любой страны, просто заменяя значение currency на нужное.

Но что делать, если нужно форматировать число в виде валюты в старых версиях JavaScript, которые не поддерживают метод toLocaleString()? В этом случае можно использовать функцию, которая преобразует число в строку, а затем вставляет запятые в нужные места. Например:

function formatCurrency(num) {
    let str = num.toFixed(2).toString().split('.');
    while ((str[0].length > 3)) {
        str[0] = str[0].substring(0, str[0].length-3) + ',' + str[0].substring(str[0].length-3);
    }
    return '$' + str.join('.');
}

Эта функция преобразует число в строку с двумя знаками после запятой, а затем вставляет запятые каждые три знака справа налево. Результатом выполнения этой функции для числа 2500.00 будет строка «$2,500.00».

Оба этих способа позволяют форматировать числа в виде строк валюты в JavaScript. Выбор между ними зависит от версии языка и требований проекта.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий