Как заставить Java обнаруживать, есть ли десятичные знаки - PullRequest
0 голосов
/ 28 июня 2018

Я делаю программу-калькулятор в Java с графическим интерфейсом на качелях. Мой калькулятор после операции, скажем, умножение выбрасывает двойное число, и даже если нет десятичных разрядов, число ищет ex. как это: 2 * 2 = 4,0. Мне было интересно, есть ли способ заставить программу определять, нужно ли ей показывать десятичную дробь или нет, поэтому, если число является целым числом, оно будет показывать целое число, например: 2 * 2 = 4. Я пытаюсь сделать это так:

JButton btnEquals = new JButton("=");
        btnEquals.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                SecondNum = Double.parseDouble(txtDisplay.getText());
                if (operation == "+") {
                    txtDisplay.setText(String.valueOf(FirstNum + SecondNum));
                    if ((FirstNum + SecondNum) == Integer.parseInt(String.valueOf(FirstNum + SecondNum))){
                        txtDisplay.setText(String.valueOf(Integer.parseInt(String.valueOf(FirstNum + SecondNum))));
                    }
                }
            }

внутри первого "если" я сделал второй раз, если двойной результат первого числа и второго числа равен целочисленному эквиваленту этой операции, на дисплее должна появиться целочисленная форма, sinc double не необходимость. Это не работает, программа вылетает.

1 Ответ

0 голосов
/ 28 июня 2018

Прямо сейчас вы анализируете SecondNum в double, поэтому вы получаете двойной результат. Я бы использовал модуль оператора%. Если (sumResult% 1! = 0), чем вы знаете, что ему нужно десятичное место, и вы должны разобрать double. Если это так == 0, вы можете разобрать целое число.

...