Изучите несколько способов простого подсчета цифр в числе в JavaScript.
1. Свойство length строкового представления
Чтобы получить длину числа, вызовите метод toString()
для числа, чтобы преобразовать его в строку, затем получите доступ к свойству length
строки, т. е. num.toString().length
.
const num1 = 12345; const num2 = 524;
console.log(num1.toString().length); // 5 console.log(num2.toString().length); // 3
Мы вызываем метод toString()
для числа, чтобы получить его строковое представление.
const num1 = 12345; const num2 = 524;
console.log(num1.toString()); // '12345' console.log(num2.toString()); // '524'
String
объекты имеют свойство длины, которое возвращает количество символов (кодовых единиц UTF-16) в строке. Мы используем это, чтобы получить длину числа.
Получение длины поплавков
Для чисел с плавающей запятой десятичная точка будет включена при доступе к свойству length
строкового представления числа с плавающей запятой.
const float1 = 123.45; // 5 digits const float2 = 524.1; // 4 digits
console.log(float1.toString().length); // 6 console.log(float2.toString().length); // 5
Чтобы избежать этого и получить фактическое количество цифр в вещественном числе, просто вычтите 1 из length
.
const float1 = 123.45; // 5 digits const float2 = 524.1; // 4 digits
console.log(float1.toString().length - 1); // 5 console.log(float2.toString().length - 1); // 4
2. Методы Math.ceil() и Math.log10()
Мы также можем использовать чисто математический подход, чтобы получить длину числа:
function getNumberLength(num) { return Math.ceil(Math.log10(num + 1)); }
const num1 = 12345; const num2 = 524;
console.log(getNumberLength(num1)); // 5 console.log(getNumberLength(num2)); // 3
Метод Math.log10()
возвращает логарифм числа по основанию 10.
console.log(Math.log10(12345)); // 4.091491094267951
А метод Math.ceil()
округляет число до следующего наибольшего целого числа.
console.log(Math.ceil(4.091491094267951)); // 5
К сожалению, этот метод не работает для поплавков. Он возвращает только количество цифр до десятичной точки.
function getNumberLength(num) { return Math.ceil(Math.log10(num + 1)); }
const float1 = 123.45; // 5 digits const float2 = 524.1; // 4 digits
console.log(getNumberLength(float1)); // 3 console.log(getNumberLength(float2)); // 3
Обновлено на: codingbeautydev.com
Все сумасшедшие вещи, которые делает JavaScript
Увлекательное руководство по тонким предостережениям и менее известным частям JavaScript.
Зарегистрируйтесь и немедленно получите бесплатную копию.