Кратко
СкопированоМетод 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