Java 如何mdify computeBalance()方法以确保金额为正且不含美分?
如何修改Java 如何mdify computeBalance()方法以确保金额为正且不含美分?,java,swing,exception,methods,jtextfield,Java,Swing,Exception,Methods,Jtextfield,如何修改computeBalance()以确保JTextField中输入的金额为正数(我想我是这样做的)并且没有美分?示例:100.19和-49.8是不可接受的 public class ATMbizlogic { private double totalBalance; private boolean rightPinEntered; /** * Creates a new instance of ATMbizlogic */ pub
computeBalance()
以确保JTextField
中输入的金额为正数(我想我是这样做的)并且没有美分?示例:100.19和-49.8是不可接受的
public class ATMbizlogic {
private double totalBalance;
private boolean rightPinEntered;
/**
* Creates a new instance of ATMbizlogic
*/
public ATMbizlogic()
{
totalBalance = 0.0;
rightPinEntered = true;
}
public void computeBalance(double withdraw, double deposit)
throws ATMexception
{
if(withdraw <=0)
throw new ATMexception("Negative withdraw not allowed");
if(deposit <=0)
throw new ATMexception("Negative deposit not allowed");
double balance = deposit - withdraw;
totalBalance = totalBalance + balance;
}
public void checkPin(double pin)
throws ATMexception
{
if(pin <=0)
throw new ATMexception("Negative pin not allowed");
if(rightPinEntered == false)
throw new ATMexception("Can not take another pin");
if(pin<1111 || pin>9999)
throw new ATMexception("Enter a valid pin");
rightPinEntered = true;
}
public double getBalance()
{
return totalBalance;
}
}
公共类ATMbizlogic{
私人双重平衡;
私有布尔右中心;
/**
*创建ATMbizlogic的新实例
*/
公共ATMbizlogic()
{
总余额=0.0;
右中心=真;
}
公共作废计算余额(双倍取款、双倍存款)
抛出异常
{
如果(撤回)
这将对数字进行四舍五入,并检查它们是否仍然是相同的数字。如果不是,则意味着它有一个小数。好吧……杰森,问题出在哪里?使用int
或long
而不是double
?
if(floor(withdraw) != withdraw)
throw new ATMexception("Withdraw with cents is not allowed.");
if(floor(deposit) != deposit)
throw new ATMexception("Deposit with cents is not allowed.");