计算器的十六进制计算

时间:2013-11-22 04:20:18

标签: java user-interface hex calculator

我正在尝试使用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部分中,如何将字母输入更改为十进制?没有信件,一切都没问题。

0 个答案:

没有答案