help me

playboyxp 2003-10-18 11:10:49
这是一个计算器
编译可以通过
但运行得不到要的结果
请各位大侠帮忙看看,我先谢了
import java.awt.*;
import java.awt.event.*;
import java.lang.Double.*;
public class Calculator implements ActionListener
{
private Button c[],d;
private Panel p;
private TextField t;
private Frame f;
double result,a,b;
int i=0;
public Calculator()
{
f=new Frame("Calculator");
f.setLayout(new BorderLayout());
p=new Panel();
p.setLayout(new GridLayout(4,4));
t=new TextField();
c=new Button[16];
for(int i=0;i<c.length;i++)
{
c[i]=new Button();
c[i].addActionListener(this);
}
c[0].setLabel("7");
c[1].setLabel("8");
c[2].setLabel("9");
c[3].setLabel("+");
c[4].setLabel("4");
c[5].setLabel("5");
c[6].setLabel("6");
c[7].setLabel("-");
c[8].setLabel("1");
c[9].setLabel("2");
c[10].setLabel("3");
c[11].setLabel("*");
c[12].setLabel("0");
c[13].setLabel(".");
c[14].setLabel("=");
c[15].setLabel("/");
d=new Button("Close");
d.addActionListener(this);
for(int i=0;i<c.length;i++)
p.add(c[i]);
f.add(p,BorderLayout.CENTER);
f.add(t,BorderLayout.NORTH);
f.add(d,BorderLayout.SOUTH);
f.pack();
f.show();
}
public void actionPerformed(ActionEvent e)
{
String s="";
if(e.getActionCommand().equals("Close"))
System.exit(0);
else if(e.getActionCommand().equals("1"))
{t.setText("1");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("2"))
{t.setText("2");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("3"))
{t.setText("3");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("4"))
{t.setText("4");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("5"))
{t.setText("5");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("6"))
{t.setText("6");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("7"))
{t.setText("7");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("8"))
{t.setText("8");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("9"))
{t.setText("9");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("0"))
{t.setText("0");
if(i%2==0)
a=Double.parseDouble(t.getText());
else b=Double.parseDouble(t.getText());}
else if(e.getActionCommand().equals("+"))
s.concat("+");
else if(e.getActionCommand().equals("-"))
s.concat("-");
else if(e.getActionCommand().equals("*"))
s.concat("*");
else if(e.getActionCommand().equals("/"))
s.concat("/");
else if(e.getActionCommand().equals("="))
{
if(s.equals("+"))
{
result=a+b;
t.setText(Double.toString(result));
}
if(s.equals("-"))
{
result=a-b;
t.setText(Double.toString(result));
}
if(s.equals("*"))
{
result=a*b;
t.setText(Double.toString(result));
}
if(s.equals("/"))
{
result=a/b;
t.setText(Double.toString(result));
}
}
i++;
}
public static void main(String args[])
{
Calculator e=new Calculator();
}
}
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
playboyxp 2003-10-28
  • 打赏
  • 举报
回复
没人帮忙了吗?????????
icecloud 2003-10-19
  • 打赏
  • 举报
回复
是否用double出来的都是1.34999999这样的东西?

1 改用BigDecimal
2 用int或long,自己控制小数点
loveyousomuch 2003-10-18
  • 打赏
  • 举报
回复
老兄一句注释都没有看着很头痛啊!

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧