Разделить число на разряды с помощью джаваскрипт

Часто возникает необходимость при выводе чисел на сайте разделить число на тысячи, миллион и т.д. Сделать это можно несколькими путями, в зависимости от цели и условий задачи.

Самый простой способ:

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));

Второй метод прекрасно работает — разряды разделяются пробелом (можно задать любой знак при необходимости), дробная часть числа отделяется точкой.

Поделиться с друзьями