Я ищу, чтобы получить длину числа в JavaScript или JQuery?
Я пытался value.length
без какого-либо успеха, мне нужно сначала преобразовать это в строку?
javascript
jquery
Код наркоман
источник
источник
Ответы:
Этот процесс также будет работать для
Float Number
и дляExponential number
также.источник
Хорошо, так много ответов, но это чисто математический ответ, просто для забавы или для запоминания того, что математика важна:
Это фактически дает «длину» числа, даже если оно в экспоненциальной форме.
num
здесь предполагается неотрицательное целое число: если оно отрицательное, возьмите его абсолютное значение и затем откорректируйте знак.Обновление для ES2015
Теперь
Math.log10
это вещь , вы можете просто написатьисточник
Math.ceil
и используетMath.abs
вместо этого быстрее . Но я, честно говоря, не ожидал такого увеличения производительности в Chrome ... Приятно знать!Я использовал эту функциональность в node.js, это моя самая быстрая реализация:
Он должен обрабатывать положительные и отрицательные целые числа (также в экспоненциальной форме) и должен возвращать длину целочисленной части в числах с плавающей точкой.
Следующая ссылка должна дать некоторое представление о методе: Weisstein, Eric W. «Длина номера». Из MathWorld - веб-ресурс Wolfram.
Я считаю, что некоторая побитовая операция может заменить Math.abs, но jsperf показывает, что Math.abs прекрасно работает в большинстве движков js.
Обновление : как отмечено в комментариях, у этого решения есть некоторые проблемы :(
Обновление 2 (обходной путь) : я считаю, что в какой-то момент возникают проблемы с точностью, и
Math.log(...)*0.434...
поведение просто неожиданно. Однако, если Internet Explorer или мобильные устройства не являются вашей чашкой чая, вы можете заменить эту операцию наMath.log10
функцию. В Node.js я написал быстрый основной тест с функциейnLength = (n) => 1 + Math.log10(Math.abs(n) + 1) | 0;
иMath.log10
она работала , как ожидалось. Пожалуйста, обратите внимание, чтоMath.log10
это не всегда поддерживается.источник
Вы должны сделать число в строку, чтобы взять длину
или
источник
Можно также использовать строку шаблона:
источник
Ну, без преобразования целого числа в строку, вы могли бы сделать фанк-цикл:
Демо: http://jsfiddle.net/maniator/G8tQE/
источник
.
в расчет.Сначала преобразуйте его в строку:
Добавление к нему пустой строки неявно приведет
mynumber
к превращению в строку.источник
Есть три способа сделать это.
лучшая производительность одна (лучшая производительность в ie11)
Math (лучшая производительность в Chrome, Firefox, но самая медленная в ie11)
здесь есть jspref http://jsperf.com/fastest-way-to-get-the-first-in-a-number/2
источник
Вы должны пойти на самый простой (stringLength), читаемость всегда превосходит скорость. Но если вы заботитесь о скорости, вот несколько ниже.
Три разных метода, все с разной скоростью.
источник
Мне задали похожий вопрос в тесте.
Отрицательные числа были добавлены, чтобы усложнить это немного больше, следовательно, Math.abs ().
источник
Я хотел бы исправить ответ @Neal, который был довольно хорош для целых чисел, но число 1 вернуло бы длину 0 в предыдущем случае.
источник
Попробуй это:
Пример использования
источник
Да, вам нужно преобразовать в строку, чтобы найти длину. Например,
источник