我正在尝试使用java制作一个gui计算器。但我的程序不能做十六进制计算。这部分取决于用户的输入:
if(event.getSource() == additionButton)
{
if(display.getText() != null)
{
temp1 = Double.parseDouble(String.valueOf(display.getText() ) );
addOp = 1;
clear = 1;
display.setText(display.getText() + "+");
}
}
这一部分进行了计算:
if(event.getSource() == equalsButton)
{
temp2 = Double.parseDouble(String.valueOf(display.getText() ) );
display.setText(display.getText());
if(addOp == 1)
{
if(base == 16)
{
int t1Int = (int) temp1;
int t2Int = (int) temp2;
String temp1String = Integer.toString(t1Int);
String temp2String = Integer.toString(t2Int);
int temp1Int = Integer.parseInt(temp1String, 16);
int temp2Int = Integer.parseInt(temp2String, 16);
int Answer = temp1Int + temp2Int;
String Result = Integer.toHexString(Answer);
display.setText(String.valueOf(Result));
addOp = 0;
}
我收到这样的错误:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "100a"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at calculator.CalculatorFrame.actionPerformed(CalculatorFrame.java:528)
我知道这是因为“temp1 = Double.parseDouble(String.valueOf(display.getText()));”。它无法用字母读取输入(如100a,65bc)。我怎么解决这个问题?在== equalsButton部分中,如何将字母输入更改为十进制?没有信件,一切都没问题。