张龄心是谁的女儿:java中如何进行减法运算

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 06:12:10
我写了一个程序,用三个文本框和四个按扭,在文本框中输入要计算的数字,四个按扭分别是加减乘除,结果在第三个文本框中显示,可是在编译的时候提示问题是operator-cannot be applied to java.lang.String,double text3.setText(""+number1-number2);
源程序是
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Work10_3 extends Applet implements ActionListener
{
TextField text1,text2,text3;
Button button1,button2,button3,button4;
public void init()
{ text1=new TextField(10);add(text1);
text2=new TextField(10);add(text2);
text3=new TextField(30);add(text3);
button1=new Button("加");
button2=new Button("减");
button3=new Button("乘");
button4=new Button("除");
add(text1);add(text2);add(text3);
add(button1);add(button2);add(button3);add(button4);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawString("将前两个文本框中的数字进行相应操作",10,100);
g.drawString("结果显示于最后的文本框",10,100);
}
public void actionPerformed(ActionEvent e)
{double number1=0,number2=0;
if(e.getSource()==button1)
{
try{ number1=Double.valueOf(text1.getText()).doubleValue();
number2=Double.valueOf(text1.getText()).doubleValue();
text3.setText(""+number1+number2);
}
catch(NumberFormatException event)
{ text1.setText("请输入数字字符");
text2.setText("请输入数字字符");
}
}
else if(e.getSource()==button2)
{
try{ number1=Double.valueOf(text1.getText()).doubleValue();
number2=Double.valueOf(text1.getText()).doubleValue();
text3.setText(""+number1-number2);
}
catch(NumberFormatException event)
{ text1.setText("请输入数字字符");
text2.setText("请输入数字字符");
}
}
else if(e.getSource()==button3)
{
try{ number1=Double.valueOf(text1.getText()).doubleValue();
number2=Double.valueOf(text1.getText()).doubleValue();
text3.setText(""+number1*number2);
}
catch(NumberFormatException event)
{ text1.setText("请输入数字字符");
text2.setText("请输入数字字符");
}
}
else if(e.getSource()==button4)
{
try{ number1=Double.valueOf(text1.getText()).doubleValue();
number2=Double.valueOf(text1.getText()).doubleValue();
text3.setText(""+number1/number2);
}
catch(NumberFormatException event)
{ text1.setText("请输入数字字符");
text2.setText("请输入数字字符");
}
}
}
}

setText(""+number1-number2);
因为java是从左到右处理的,在减法运算前有""字符串处理, java就会把之后的都当做字符串处理.改成
setText(""+(number1-number2));

如果减法运算在前面,比如 number1-number2 + "".这样是可以的

setText(""+number1-number2);
这里你是否考虑不使用装箱而是显示的转换下呢

是否应该加个括号呢?