Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
arvalon
21 / 6 / 2
Регистрация: 26.10.2012
Сообщений: 199
Записей в блоге: 1
1

Ограничение EditText на ввод максимальных int и float

01.06.2017, 15:47. Просмотров 628. Ответов 2

Есть диалог в котором можно ввести пару чисел в EditText'ах, из первого из них будет добываться int а из второго - float. Как ограничить в разметке возможность вводить только целое число в первом случае и дробное во втором разобрался:
int
XML
1
2
android:maxLines="1"
android:inputType="number"
float
XML
1
2
android:maxLines="1"
android:inputType="numberDecimal"
А есть возможность через разметку так же ограничить/проверять превышение размерности вводимого числа? Или это уже только в коде возможно, пытаться превратить (valueOf) значения в int и float соответственно, обёрнув всё в try-catch?

Да, у всех value-типов есть обёртка-объект, у которой есть поле MAX_VALUE, т.е. для int можно посмотреть Integer.MAX_VALUE и для float соответственно. По идее можно это тоже как-то использовать, но не понимаю а В КАКОЙ тип изначально превратить считываемое значение из EditText, что бы потом сравнивать его с MAX_VALUE?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2017, 15:47
Ответы с готовыми решениями:

Ввод в один EditText и авто-вычисление в двух других EditText
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех заблокированы,а ввод чисел в...

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int)
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй...

Перевод Int/FLoat -> QByteArray -> Int/Float
Есть задача переводить float/int данные в бинарный вид и обратно (в последующем для передачи по...

Функции float average(int arrray[],int from,int to)
Напишите код функции float average(int arrray,int from,int to). Возвращаемым значением функции...

Если результат деления int на int есть тип float
Есть две ситуации: int a = 10; int b = 3; c = a/b; // через несколько строчек тоже самое но...

2
Pablito
2829 / 2248 / 759
Регистрация: 12.05.2014
Сообщений: 7,851
Завершенные тесты: 1
01.06.2017, 16:15 2
Java
1
2
3
4
5
6
        String str = floatEditText.getText().toString();
        if (str.isEmpty()) str = "0";
        float value = new BigDecimal(str).floatValue();
        if (value == Float.POSITIVE_INFINITY || value == Float.NEGATIVE_INFINITY) {
            // значит введенное число больше Float.MAX_VALUE или меньше Float.MIN_VALUE
        }
так что-ли?
для int по аналогии, только BigInteger

Добавлено через 14 минут
хм, я думал что при превышении Float.parseFloat() будет бросать исключение, но проверил и ничего не кидает
поэтому строку с BigDecimal - в топку
новый вариант
Java
1
        float value = Float.parseFloat(str);
1
arvalon
21 / 6 / 2
Регистрация: 26.10.2012
Сообщений: 199
Записей в блоге: 1
01.06.2017, 16:21  [ТС] 3
О, да, спасибо, надо будет так попробовать.
Цитата Сообщение от Pablito Посмотреть сообщение
float value = new BigDecimal(str).floatValue();
Т.е. метод если в конструктор BigBecimal подать на вход числовую последовательность и вызвать соответствующий метод (floatValue в данном случае) то при превышении максимального (минимального) значения на выходе этот метод выдаёт максимальное (минимальное) значение. И потом уже можно его проверить.
Спасибо, никогда ещё не работал с классом BigDecimal для гигантских чисел.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2017, 16:21

Почему при умножении разнотипных переменных (например, float и int) получается int?
Почему при умножении разнотипных переменных (float price и int unit) получается int? Это же не...

Программа подстановки числа в int, short int и float +1
Поступил называется на IT-шную специальность. Основы Си ставят в тупик. Спасибо заранее за ваше...

КВИТАНЦИЯ (номер – int, дата – int, сумма – float)
Помоги решить пожалуйста лабораторную работу, 13 варианта, буду очень признателен! очень срочно !


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru