Нахождение количества цифр в JavaScript
Я пытаюсь получить количество цифр числа в 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.
Какое хорошее уравнение / функцию использовать?
1 ответ
Создание числа в виде строки и использование регулярного выражения для подсчета только цифр может работать.
function getNumDigits(val) {
return (`${val}`.match(/\d/g) || []).length
}
console.log(getNumDigits(2.5245234))