【发布时间】:2013-04-12 15:50:11
【问题描述】:
我只是在做一些项目,我找不到以下代码有什么问题:
double getInterest(double amt,double tax){
double diff=0;
double refund=0;
double interest=0;
if(amt>=(tax*0.4)){
diff=amt-(tax*0.4);
System.out.println(" "+diff); //This is not working.Nothing gets printed.
refund=diff; //The value is not being assigned to refund.
} //refund remains to be 0 throughout.
interest=diff*0.01*12;
if(refund>0){
JOptionPane.showMessageDialog(null,"Your refund is: "+refund);
}
return interest;
}
我无法找出代码中的任何错误。但它仍然不能完全工作。
错误以cmets形式在代码中给出。
有人帮我找出错误并解决这个问题吗?
我不知道为什么diff 的值没有被打印出来,以及为什么diff 的值没有被分配给变量refund。
我在 NetBeans 中工作,它没有给出任何类型的编译时错误。
我尝试使用println 来检查diff 和refund 的值,但是这些值没有被打印出来。
【问题讨论】:
-
肯定有编译错误!测试中缺少一个括号
if (amt >= (tax * 0.4) {并且未声明interest。这是真正的代码吗? -
一方面,永远不要使用双精度类型来表示金钱。
-
对不起,我刚刚在编辑器中输入了它,忘记声明兴趣并给出括号。而且我很确定没有任何编译器错误。当我尝试运行代码时,NetBeans 会出错。但它没有给出任何错误,编辑器中也没有任何错误符号。
-
只需调试代码并在
if语句上添加断点。并检查两个变量的值是多少。这些问题你应该自己解决。 -
您是否检查过您传递给此方法的值以及它们是否符合进入 if 块的 if 条件。在 if 之前打印 amt 和 tax 并查看。
标签: java variables runtime-error development-environment