关于小于和负值?

时间:2011-12-12 10:39:51

标签: java

我只是有一个小的初学者问题,而且是关于下面的代码。我想检查一下客户从信用账户中扣除的金额+当前余额是否低于-5000?它不起作用,我想知道我做错了什么?这是关于负值吗?帮助预先确定!

// deduct credit account
if(type == "credit") {
    if((amountOut + creditAccountList.get(index).getAccountBalance()) < -5000) {
       System.out.println("Sorry! No deduct");
    }
}

编辑: amountOut是客户输入的正数。我仍然没有让它工作!?可以用其他方式完成吗?它看起来很简单,现在还很复杂!我只是想阻止客户扣除价值,如果余额为-5000?问题是余额是负数。

5 个答案:

答案 0 :(得分:4)

替换

if(type == "credit") {

if ("credit".equals(type)) {

除此之外,代码似乎是正确的,为了仔细检查,我会通过调试器运行它,或者将以下错误消息用于快速简单的调试:

System.out.printf("out %d balance %d\n", amountOut, creditAccountList.get(index).getAccountBalance());

答案 1 :(得分:1)

我认为你需要减去amountOut,虽然它不清楚你在那里存储了什么价值。

if((creditAccountList.get(index).getAccountBalance() - amountOut) < -5000)
                                                     ^
                                              Changed from plus

答案 2 :(得分:1)

负数与他们一直有效;你的逻辑更可能是关闭的。

if((amountOut + creditAccountList.get(index).getAccountBalance()) < -5000){

如果amountOut为正,您永远不会减少帐户余额。要么使其为负数,要么从当前余额中减去它以在取款后获得余额。

答案 3 :(得分:1)

我认为你必须重写这个条件。如果我理解你的情况是客户可以提取超过数量的5000。示例如果客户的余额为2000人,他/她可以提取最高7000卢比。如果他/她想要退出,那么您的申请将显示“抱歉!没有扣除”消息。如果是这种情况,那么您可以重新编写逻辑,如下所示

int thresholdMoney = 5000;
        if(((creditAccountList.get(index).getAccountBalance()+ thresholdMoney) - Math.abs(amountOut)) < 0){
            System.out.println("Sorry! No deduct");

        }

答案 4 :(得分:0)

应该是

// deduct credit account
if(type == "credit") {
    if((amountOut + creditAccountList.get(index).getAccountBalance()) > -5000){
   System.out.println("Sorry! No deduct");
}
}