Почему не правильно определяет if else?

Интерфейс, диалоги, темы, стили, меню
Ответить
Konstantin18ko
Сообщения: 22
Зарегистрирован: 14 авг 2015, 11:46

Почему не правильно определяет if else?

Сообщение Konstantin18ko » 16 сен 2015, 09:44

// Считал значение
num1 = Float.parseFloat(editText1.getText().toString());
// Сравнил значение
if (num1 > 12) {
Toast.makeText(MainActivity.this, "Внимание доза для ребенка!", Toast.LENGTH_LONG).show();}
else {
Toast.makeText(MainActivity.this, "Внимание доза для взрослого!", Toast.LENGTH_LONG).show();}
Если указываешь значение больше 12, то выскакивает сообщение "Внимание доза для взрослого!", как и положено.

А когда указываешь ниже 12, то тоже пишет "Внимание доза для взрослого!". Где ошибка?

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Почему не правильно определяет if else?

Сообщение Mikhail_dev » 16 сен 2015, 11:03

Скорее всего это связано со спецификой представления чисел с плавающей точкой (float, double). Они могут быть не совсем такими, а с некоторыми отклонениями.
Выведите в консоль num1, что выводит ?

Konstantin18ko
Сообщения: 22
Зарегистрирован: 14 авг 2015, 11:46

Re: Почему не правильно определяет if else?

Сообщение Konstantin18ko » 16 сен 2015, 11:24

Честно сказать мои знания в java - это Ctrl+C/V. Так что я не знаю как вывести в консоль.

После долгих мучений в 5 минут понял.
Задал условия так:
double num6 = 12;
// Считал значение
num1 = Float.parseFloat(editText1.getText().toString());
// Сравнил значение
if (num1 > num6) {
Toast.makeText(MainActivity.this, "Внимание доза для ребенка!", Toast.LENGTH_LONG).show();}
else {
Toast.makeText(MainActivity.this, "Внимание доза для взрослого!", Toast.LENGTH_LONG).show();}

Ответить