Здравия, товарищи программисты. Дайте новичку совет: что надо прописать в калькуляторе, чтобы он считал именно до сотых, а не до десятых?
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class Window extends JFrame {
final int ADDITION = 1;
final int SUBSTRACT = 2;
final int MULTIPLICATION = 3;
final int DIVIZION = 4;
final int DELETE = 5;
final int MOD = 6;
final int NONE = 0;
private JTextArea text;
private double p1 = 0, p2 = 0;
private int oper = NONE, b = 19;
public Window() {
Container cont = getContentPane();
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBackground(new Color(26, 145, 92));
Font font = new Font("arial", 1, 30);
JButton[] btn = new JButton[b];
int x = 25, y = 15;
for (int i = 0; i < b; i++) {
btn[i] = new JButton();
x += 85;
if (i % 3 == 0) {
x = 25;
y += 75;
}
btn[i].setSize(70, 60);
btn[i].setLocation(x, y);
btn[i].setBackground(new Color(15, 84, 53));
btn[i].setFont(font);
panel.add(btn[i]);
}
String[] textOperations = { "+", "—", "*", "/", ".", "%", "=", "C", "+/-"};
for (int i = 0; i < 10 + textOperations.length; i++) {
if (i < 10)
btn[i].setText("" + i);
else {
btn[i].setText(textOperations[i - 10]);
}
btn[i].addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
JButton b = (JButton) e.getSource();
String s = b.getText();
switch (s) {
case "+": {
oper = ADDITION;
p1 = Double.parseDouble(text.getText());
text.setText("");
break;
}
case "—": {
oper = SUBSTRACT;
p1 = Double.parseDouble(text.getText());
text.setText("");
break;
}
case "/": {
oper = DIVIZION;
p1 = Double.parseDouble(text.getText());
text.setText("");
break;
}
case "*": {
oper = MULTIPLICATION;
p1 = Double.parseDouble(text.getText());
text.setText("");
break;
}
case "C": {
oper = DELETE;
p1 = Double.parseDouble(text.getText());
text.setText("");
break;
}
case "+/-": {
double d = Double.parseDouble(text.getText());
d = -d;
text.setText("" + d);
break;
}
case "%": {
oper = MOD;
p1 = Double.parseDouble(text.getText());
text.setText("");
break;
}
case "=": {
p2 = Double.parseDouble(text.getText());
double answer = 0;
if (oper == ADDITION) {
answer = p1 + p2;
} else if (oper == SUBSTRACT) {
answer = p1 - p2;
} else if (oper == MULTIPLICATION) {
answer = p1 * p2;
} else if (oper == DIVIZION) {
answer = p1 / p2;
}else if (oper == DELETE) {
answer = 0;
}
else if (oper == MOD) {
answer = p1 % p2;
}
if (oper != NONE) {
text.setText("" + answer);
}
break;
}
default: {
text.append(s);
}
}
}
});
}
text = new JTextArea();
text.setEditable(false);
text.setFont(font);
text.setBackground(Color.WHITE);
text.setBounds(25, 20, 240, 50);
panel.add(text);
cont.add(panel);
setTitle("Calculator");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 300, 700);
setVisible(true);
}
}
Тайный краб
0 уровень
Как в калькуляторе сделать так, чтобы он считал до сотых, а не до десятых?
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2322530
24 марта 2021, 12:47
так он считает, просто 0 отбрасывает)
в остальном можно использовать String.format()
0