как узнать сколько цифр в числе java
Количество цифр в целом в Java
Изучите различные способы получения количества цифр в целом в Java.
1. введение
В этом кратком руководстве мы рассмотрим различные способы получения количества цифр в целочисленном в Java.
Мы также проанализируем эти различные методы и выясним, какой алгоритм лучше всего подходит для нашей ситуации.
Дальнейшее чтение:
Как округлить число до N десятичных знаков в Java
Проверьте, является ли строка Числовой в Java
Практическое руководство по десятичному формату
2. Количество цифр в целочисленном числе
Для методов, обсуждаемых здесь, мы рассматриваем только положительные целые числа. Если мы ожидаем каких-либо отрицательных входных данных, то мы можем сначала использовать Math.abs(число) перед использованием любого из этих методов.
2.1. Решение На основе строк
Если у нас есть только несколько чисел для оценки, то мы можем явно пойти с этим решением – потому что разница между этим и любым другим подходом будет пренебрегаться даже для больших чисел.
2.2. Логарифмический Подход
Для чисел, представленных в десятичной форме, если мы возьмем их логин в базе 10 и округлим его, то получим количество цифр в этом числе:
Логарифмический подход значительно быстрее, чем подход на основе String , поскольку ему не нужно проходить процесс преобразования данных. Это просто включает в себя простой, простой расчет без какой-либо дополнительной инициализации объекта или циклов.
2.3. Повторное Умножение
В этом коде строка temp совпадает с записью temp = (temp Метки
Как узнать сколько цифр в числе java
Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.2.2011
Репутация: нет
Всего: нет
Код |
public class MATH < public static void main(String args[]) < final double a = 33; System.out.println(a); > > |
Бывалый
Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009
Репутация: нет
Всего: 10
Опытный
Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada
Репутация: 11
Всего: 16
Код |
public class T < public static void main(String []args) < int x = Integer.parseInt(args[0]); int n = 1; while ((x = x/10) > 0) n++; System.out.println(n); > > |
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15680
Регистрация: 24.3.2004
Репутация: 206
Всего: 534
Опытный
Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010
Репутация: 7
Всего: 8
Бывалый
Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009
Репутация: нет
Всего: 10
Опытный
Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada
Репутация: 11
Всего: 16
Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.8.2011
Репутация: нет
Всего: нет
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15680
Регистрация: 24.3.2004
Репутация: 206
Всего: 534
Опытный
Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010
Репутация: 7
Всего: 8
Цитата(LSD @ 23.8.2011, 15:50 ) |
Кстати, в оригинале фигуриует double, так что без изменений будет работать только логарифм |
я так понял речь идет о задании, коком то.
но ведь речь может идти о колличестве чисел не только в целой части но и в мантиссе, с кажем до заданной точности.
безусловно, логорифмирование выглядит очень математично, так что на собеседке, например, будет действовать блондинисто.
Но в реальности думаю легче конвертить в строку, просплитать, если надо, конвертнуть в нужную систему исчисления и т.д.
Интересно, насколько ресурсоемко вычисление логарифма? По сути это умножение с проверкой.
Конвертация в строку, наверное медленнее, меня беспокоит метод getChars в первую очередь.
Код |
final static int [] sizeTable = < 9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE >; |
// Requires positive x
static int stringSize(int x) <
for (int i=0; ; i++)
if (x
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15680
Регистрация: 24.3.2004
Репутация: 206
Всего: 534
Цитата(priam220 @ 23.8.2011, 18:27 ) |
Интересно, насколько ресурсоемко вычисление логарифма? |
Опытный
Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010
Репутация: 7
Всего: 8
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15680
Регистрация: 24.3.2004
Репутация: 206
Всего: 534
Цитата(priam220 @ 23.8.2011, 20:34 ) |
LSD, почему тогда в core не испльзовали логарифмические команды? Я о куске с массивом девяток. Не догадались? |
Бывалый
Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009
Репутация: нет
Всего: 10
Почему-то мне кажется, что для такого действия достаточно интеллектуален.
С массивом супер просто решение!
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.
[ Время генерации скрипта: 0.1372 ] [ Использовано запросов: 21 ] [ GZIP включён ] Получить количество цифр с помощью JavaScriptно Safari говорит, что он не работает из-за TypeError : 9 ответовlength является свойством, а не методом. Вы не можете его назвать, поэтому вам не нужны скобки () : С точки зрения скорости, потенциально самый быстрый способ получить количество цифр в заданном кол-делать это математически. Для положительные целые числа есть замечательный алгоритм с log10 : создание быстрых математических решений для десятичных чисел не будет легко из-за хорошо известное поведение математики с плавающей запятой, поэтому подход cast-to-string будет более простым и надежным. Как упоминалось @streetlogics быстрое литье можно сделать с помощью простого числа для конкатенации строк, ведущего заменить решение для преобразования в: вот математический ответ (также работает для отрицательных чисел): и оптимизированная версия выше (более эффективные операции побитового): по существу, мы начинаем с получения абсолютного значения ввода, чтобы позволить отрицательным значениям работать правильно. Затем мы запускаем операцию log10, чтобы дать нам, какая мощность 10 входных данных (если вы работали в другой базе, вы бы использовали логарифм для этой базы), который является количество цифр. Затем мы наполним вывод, чтобы захватить только целочисленную часть этого. Наконец, мы используем функцию max для фиксации десятичных значений (любое дробное значение от 0 до 1 просто возвращает 1 вместо отрицательного числа) и добавляем 1 к конечному выходу, чтобы получить счет. вышеизложенное предполагает (на основе вашего примера ввода), что вы хотите подсчитать количество цифр в целых числах (так 12345 = 5, и, следовательно, 12345.678 = 5). Если вы хотите подсчитать общее количество цифр в значение (так 12345.678 = 8), затем добавьте это перед «возвращением» в любой функции выше: поскольку это появилось в поиске Google для «javascript получить количество цифр», я хотел бросить его там, что есть более короткая альтернатива этому, которая зависит от внутреннего кастинга, который будет сделан для вас: Если вам нужны цифры (после разделителя), вы можете просто разделить номер и подсчитать длину второй части (после точки). Я все еще изучаю Javascript, но я придумал эту функцию в C некоторое время назад, которая использует математику и цикл while, а не строку, поэтому я переписал ее для Javascript. Возможно, это можно было бы сделать рекурсивно, но я все еще не понял концепцию: (это лучшее, что я мог придумать. Я не уверен, насколько большими числами он работает, он работал, когда я вставлял сто цифр. edit: работает только с целочисленными значениями Найти количество цифр в числеПомощь в написании контрольных, курсовых и дипломных работ здесь. Найти количество цифр «3» и «5» в числе как сделать?объясните(найти сумму цифр во введенном числе) Получить сумму цифр в числе . поясните пожалуйста. Что именно Вам кажется неправильным? Qwerty_Wasd, а переменная numb1 она же не находиться в области видимости функции как она можно написать так alert(getDigitAmount(numb1)); Добавлено через 3 минуты означает, что мы передали переменную в ф-ию getDigitAmount в качестве параметра и только. Добавлено через 40 секунд Помощь в написании контрольных, курсовых и дипломных работ здесь. Посчитать среднее арифметическое цифр в числе Функция расположения цифр в числе в порядке убывания Дана строка, найти наибольшее количество цифр, которые идут в нем подряд Ввести два числа. Найти количество цифр в двух числах, используя функцию вычисления количества цифр в одном числе Как посчитать количество цифр в числе?Как определить количество цифр в числе Java?Возможно, самый простой способ получить количество цифр в Integer — преобразовать его в String и вызвать метод length () Это вернет длину представления String нашего числа: int length = String. valueOf(number). length(); Как определить количество цифр в числе C#?вычисление количества цифр целого введенного числа Как определить количество разрядов в числе?Чтобы программно посчитать количество разрядов числа, необходимо последовательно его делить нацело на 10, пока это число не станет равным нулю. При этом считать количество делений. Например, дано число 345. После первого деления останется 34, после второго — 3, после третьего — 0. Как найти количество цифр между двумя числами?Таким образом, чтобы найти количество целых чисел между нецелыми положительными числами n и m (m>n), надо из целой части большего числа вычесть целую часть меньшего числа. Как узнать длину числа в Python?Длина целого числа в Python Как узнать длину числа в C#?Код к задаче: «Как узнать длину числа» Сколько цифр в int?Как найти сумму чисел в C++?Разряд является «рабочим местом» цифры в числе. Порядковому номеру разряда соответствует его вес — множитель, на который надо умножить значение разряда в данной системе счисления. Диапазон значений для всех разрядов (в данной системе счисления) неизменен. Как найти середину между двумя числами?Чтобы найти среднее арифметическое двух чисел, надо сложить эти числа и результат поделить на 2: (2 + 5):2=3,5. Как рассчитать процентное соотношение между двумя числами?a — значение первого числа; b — величина второго числа. Процентную разницу можно рассчитать с помощью онлайн калькулятора, что значительно сэкономит вам время.
|