我有这个代码,其中有一个将二进制转换为十进制的函数。它将JTextArea的文本设置为结果,并将结果附加到不同的JTextArea。前者工作正常,但后者导致出现上述异常。这是我的代码。请帮忙。
JButton numerical = new JButton("BIN->NUM");
numerical.setFont(small);
numerical.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Display.setText(String.valueOf(Integer.parseInt(Display.getText(), 2)));
try {
Memory.append(String.valueOf(Integer.parseInt(Display.getText(), 2)));
Memory.append("\n");
} catch (Exception ie) {
Memory.append(String.valueOf(Integer.parseInt(Display.getText(), 2)));
}
}
});
答案 0 :(得分:3)
正如你所说,第一个正常。此时
Display.setText(String.valueOf(Integer.parseInt(Display.getText(), 2)));
parseInt()
的输入值是二进制形式,转换有效。但是setText()
将二进制值替换为十进制等值。然后当你尝试
Memory.append(String.valueOf(Integer.parseInt(Display.getText(), 2)));
该数字为十进制格式,第二次转换失败,因为您指定了基数2,并且它希望该数字为二进制。