Я пытаюсь получить количество цифр числа в javascript, но у меня возникают крайние случаи с уравнениями, которые я нашел в Интернете.
Вот что я использую, от этот сайт.
getNumDigits(val){
return val === 0 ? 1 : Math.floor(Math.log(Math.abs(val)) / Math.LN10 + 1);
}
Но проблема в том, что если вы введете число вроде 1000, вы каким-то образом получите ошибку округления javascript, где значение будет выглядеть как 3.999997
Я заметил, что если ваш номер не находится между -1 и 1, вы можете просто добавить 1 к val в Math.abs (val), и он соответствующим образом установит количество цифр, но это просто кажется беспорядочный.
Я пробовал просто преобразовать val в строку и получить длину, но это не работает в случае, скажем, десятичного числа, когда вы используете что-то вроде 0.2 - так как он говорит, что длина равна 3 .
Какое уравнение / функцию лучше использовать?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Превращение числа в строку и использование регулярного выражения только для подсчета цифр может работать.
function getNumDigits(val) {
return (`${val}`.match(/\d/g) || []).length
}
console.info(getNumDigits(2.5245234))
я получаю реальную стоимость
3для1000. кстати, почему logarithmus naturalis?