Кратко
СкопированоМетод to объекта Number используется для преобразования числа в строку в экспоненциальной (научной) нотации.
Пример
Скопировано
// Пример большого числаconst largeNumber = 860000000000000000000console.log(largeNumber.toExponential())// "8.6e+20"
// Пример большого числа
const largeNumber = 860000000000000000000
console.log(largeNumber.toExponential())
// "8.6e+20"
Как пишется
СкопированоМетод to объекта Number имеет необязательный аргумент fraction, который определяет количество цифр после десятичной точки.
Если аргумент fraction не указан, то по умолчанию используется минимальное количество цифр, необходимое для представления числа в экспоненциальной форме.
Значение аргумента должно находиться в диапазоне от 0 до 100, иначе метод бросит ошибку Range.
Метод возвращает строку.
const num = 123456console.log(num.toExponential())// "1.23456e+5"console.log(num.toExponential(2))// "1.23e+5"
const num = 123456
console.log(num.toExponential())
// "1.23456e+5"
console.log(num.toExponential(2))
// "1.23e+5"
☝️ Вызвать метод to можно и для числового литерала. Если число не содержит десятичную точку, добавьте точку или пробел после числа:
console.log(1234..toExponential())// 1.234e+3console.log(1234 .toExponential())// 1.234e+3
console.log(1234..toExponential())
// 1.234e+3
console.log(1234 .toExponential())
// 1.234e+3
Как понять
СкопированоИногда числа в их стандартной форме занимают больше памяти, чем строки. Это особенно актуально, когда нужно передавать очень большие или очень маленькие числа по сети. Например, при работе с транзакциями в блокчейне, где важно минимизировать объем передаваемых данных.
Чтобы сократить использование памяти, числа можно представить в экспоненциальной записи. Это переводит числа в компактную форму.
💡 Метод to не добавляет символ экспоненты для «особенных» чисел. Например:
const num1 = Number.POSITIVE_INFINITYconst num2 = NaNconsole.log(num1.toExponential())// Infinityconsole.log(num2.toExponential())// NaN
const num1 = Number.POSITIVE_INFINITY
const num2 = NaN
console.log(num1.toExponential())
// Infinity
console.log(num2.toExponential())
// NaN