Страница 1 из 1

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

Добавлено: 16 сен 2015, 09:44
Konstantin18ko
// Считал значение
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, то тоже пишет "Внимание доза для взрослого!". Где ошибка?

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

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

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

Добавлено: 16 сен 2015, 11:24
Konstantin18ko
Честно сказать мои знания в 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();}