Форматирование чисел в браузере

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

Простой пример:

const numberFormatter = new Intl.NumberFormat();

numberFormatter.format(12345.67); // -> 12 345,67

По умолчанию NumberFormat использует правила системной локали. При необходимости можно указать нужную локаль: new Intl.NumberFormat(’en-US’). Вторым аргументом передаются опции вроде минимального/максимального количества знаков после запятой, подробнее в документации.

Intl поддерживается начиная с IE 11 и Safari 10, на мобильных поддержка хуже, поэтому нужно при открытии страницы проверять поддержку и при её отсутствии подгружать полифил.

Проще всего использовать сервис Polyfill.io от Financial Times:

<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script>

Polyfill.io проверяет по юзерагенту, какие фичи не поддерживает браузер, и отдаёт полифилы только для них.