Здравствуйте, у меня небольшая "проблема" ... Мне просто кажется странным, что когда вы проверяете приведенный ниже код, он говорит 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);
}
}
В этом есть смысл. Прочтите связанный дубликат, он объясняет эффект. Вкратце: == сравнивает личность, а не содержание. Используйте метод equals, если вы хотите сравнить содержание.
Проверьте это сейчас. Спасибо
заменить e = (c == d); на e = (c.equals(d));
@FelixPutzenlechner Здесь то же самое. Вам нужно использовать .equals() для сравнения классов-оболочек на равенство.
или не используйте упакованные примитивы, если значение действительно не может быть нулевым - и parseDouble никогда не возвращает нулевое значение.
См. Также stackoverflow.com/questions/13387742/…




Используйте .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);
}
Не нужно отвечать на вопрос, который уже отмечен как дублирующийся!
начальный сам ответил. хорошо спасибо.
вы сравниваете строки, а не числа ..