Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Преобразование числа в строку
Чтобы преобразовать число в строку достаточно воспользоваться операцией конкатенации строк или выполнить подстановку значения:
let x = 10, y = 1.2;
console.log(x + ' ' + y); // 10 1.2
console.log(`${x} ${y}`); // 10 1.2
Можно также воспользоваться методом toString([<Основание>])
:
let x = 15;
let str = x.toString(); // "15"
console.log(typeof str); // string
x = 100;
console.log(x.toString(2)); // 1100100
x = 119;
console.log(x.toString(8)); // 167
x = 255;
console.log(x.toString(16)); // ff
А также методами toFixed()
, toPrecision()
и toExponential()
из класса Number
(см. разд. 5.2):
let x = 0.06789;
console.log(x.toFixed(2)); // 0.07
console.log(x.toPrecision(2)); // 0.068
console.log(x.toExponential(2)); // 6.79e-2
Метод toLocaleString([<Локаль>[, <Настройки>]])
возвращает строковое представление числа в зависимости от локали. В первом параметре можно задать название локали (показан результат при запуске в Web-браузере):
let x = 1027324.564;
console.log(x.toLocaleString('ru-RU')); // 1 027 324,564
console.log(x.toLocaleString('en-US')); // 1,027,324.564
console.log(x.toLocaleString('de-DE')); // 1.027.324,564
В Node.js версии 12 локализация не входит в состав устанавливаемых компонентов, поэтому во всех трех инструкциях получим представление числа в локали en-US
:
let x = 1027324.564;
console.log(x.toLocaleString('ru-RU')); // 1,027,324.564
console.log(x.toLocaleString('en-US')); // 1,027,324.564
console.log(x.toLocaleString('de-DE')); // 1,027,324.564
Во втором параметре указывается объект с дополнительными настройками:
style
— стиль форматирования:decimal
(просто число; значение по умолчанию),currency
(валюта) илиpercent
(проценты);currency
— задает код валюты для стиляcurrency
;currencyDisplay
— задает способ отображения валюты для стиляcurrency
:symbol
(символ валюты; значение по умолчанию),code
(код валюты, например,RUB
) илиname
(название валюты, например, евро) (показан результат при запуске в Web-браузере):
let x = 1027324.5647;
console.log( x.toLocaleString('ru-RU',
{ style: 'currency', currency: 'RUB',
currencyDisplay: 'code'})); // 1 027 324,56 RUB
Результат в Node.js версии 12:
RUB 1,027,324.56
minimumIntegerDigits
— минимальное количество цифр в целой части числа (значение по умолчанию:1
);minimumFractionDigits
— минимальное количество цифр в дробной части числа (значение по умолчанию:0
);maximumFractionDigits
— максимальное количество цифр в дробной части числа (показан результат при запуске в Web-браузере):
let x = 1027324.5647;
console.log( x.toLocaleString('ru-RU',
{ style: 'decimal', minimumIntegerDigits: 1,
minimumFractionDigits: 0,
maximumFractionDigits: 2 }) ); // 1 027 324,56
Результат в Node.js версии 12:
1,027,324.56
useGrouping
— определяет, нужно ли выводить разделители тысячных групп. Можно указать значенияtrue
(разделители выводятся; по умолчанию) илиfalse
(разделители не выводятся) (показан результат при запуске в Web-браузере):
let x = 1027324.5647;
console.log( x.toLocaleString('ru-RU',
{ style: 'decimal', useGrouping: false,
maximumFractionDigits: 2 })); // 1027324,56
Результат в Node.js версии 12:
1027324.56
Вместо метода toLocaleString()
можно воспользоваться классом Intl.NumberFormat
:
<Экземпляр класса> = new Intl.NumberFormat([<Локаль>[, <Настройки>]]);
Применить настройки и получить отформатированную строку позволяет метод format(<Число>)
(показан результат при запуске в Web-браузере):
let x = 1027324.5647;
let obj = new Intl.NumberFormat('ru-RU');
console.log(obj.format(x)); // 1 027 324,565
obj = new Intl.NumberFormat('ru-RU',
{ style: 'decimal', useGrouping: false,
maximumFractionDigits: 2 });
console.log(obj.format(x)); // 1027324,56
Результат в Node.js версии 12:
1,027,324.565
1027324.56
Метод resolvedOptions()
возвращает объект со всеми настройками (показан результат при запуске в Web-браузере):
let obj = new Intl.NumberFormat('ru-RU');
console.log(obj.resolvedOptions());
// Object { locale: "ru-RU", numberingSystem: "latn",
// style: "decimal", minimumIntegerDigits: 1, minimumFractionDigits: 0,
// maximumFractionDigits: 3, useGrouping: true, notation: "standard",
// signDisplay: "auto" }
Результат в Node.js версии 12:
{
locale: 'ru-RU',
numberingSystem: 'latn',
style: 'decimal',
minimumIntegerDigits: 1,
minimumFractionDigits: 0,
maximumFractionDigits: 3,
useGrouping: true,
notation: 'standard',
signDisplay: 'auto'
}
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов