Изучите несколько способов простого подсчета цифр в числе в 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.

Зарегистрируйтесь и немедленно получите бесплатную копию.