Неправильный ответ Java Boolean

Здравствуйте, у меня небольшая "проблема" ... Мне просто кажется странным, что когда вы проверяете приведенный ниже код, он говорит false, если я дважды набираю одно и то же число в полях диалогового окна.

Я новичок в Java, но не в самом программировании, и это не имеет никакого смысла.

заранее спасибо

    import javax.swing.*;


public class Praeinkrement {

    public static void main(String[] args) {

        String a = JOptionPane.showInputDialog("Zahl a");
        String b = JOptionPane.showInputDialog("Zahl b");


        Double c = Double.parseDouble(a);
        Double d = Double.parseDouble(b);

        boolean e, f;
        e = (c == d);
        f = (c < d);

        JOptionPane.showMessageDialog(null, e + "\n" + f);

    }
}

вы сравниваете строки, а не числа ..

Anoop LL 08.05.2018 12:53

В этом есть смысл. Прочтите связанный дубликат, он объясняет эффект. Вкратце: == сравнивает личность, а не содержание. Используйте метод equals, если вы хотите сравнить содержание.

Zabuzard 08.05.2018 12:53

Проверьте это сейчас. Спасибо

Felix Putzenlechner 08.05.2018 12:56

заменить e = (c == d); на e = (c.equals(d));

retatu 08.05.2018 12:58

@FelixPutzenlechner Здесь то же самое. Вам нужно использовать .equals() для сравнения классов-оболочек на равенство.

Ivar 08.05.2018 12:58

или не используйте упакованные примитивы, если значение действительно не может быть нулевым - и parseDouble никогда не возвращает нулевое значение.

Jaroslaw Pawlak 08.05.2018 13:00

См. Также stackoverflow.com/questions/13387742/…

Seelenvirtuose 08.05.2018 13:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
54
1

Ответы 1

Используйте .equals для проверки значения,

public static void main(String[] args) {

          String a = JOptionPane.showInputDialog("Zahl a");
            String b = JOptionPane.showInputDialog("Zahl b");

            boolean c = (a.equals(b));

            JOptionPane.showMessageDialog(null, c);
    }

Не нужно отвечать на вопрос, который уже отмечен как дублирующийся!

Seelenvirtuose 08.05.2018 12:59

начальный сам ответил. хорошо спасибо.

Balasubramanian 08.05.2018 13:01

Другие вопросы по теме