Часто возникает необходимость при выводе чисел на сайте разделить число на тысячи, миллион и т.д. Сделать это можно несколькими путями, в зависимости от цели и условий задачи.
Самый простой способ:
num = 1234567890.56; result = num.toLocaleString();
Здесь переменная num — число, которое нужно отформатировать таким образом, чтобы между тысячами и миллионами был пробел. При этом, как видно из примера, число представляет из себя десятичную дробь. В данном варианте форматирование числа происходит верно — остаются знаки после запятой, а тысячи и миллионы отделяются пробелом. Правда, вместо точки между целой и дробной частями выводится запятая.
Вообще-то, метод toLocaleString() предназначен для работы с датой. Тем не менее он может быть использован в некоторых случаях и для выполнения нашей задачи — вывода числа с разделением на тысячи, миллионы и т.д.
Другой способ — небольшая функция:
function numberWithSpaces(x) { var parts = x.toString().split("."); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " "); return parts.join("."); } //Для наглядного примера можем вывести в консоль результат работы данной функции console.log(numberWithSpaces(1000000.05));
Второй метод прекрасно работает — разряды разделяются пробелом (можно задать любой знак при необходимости), дробная часть числа отделяется точкой.