我正在编写贷款计算并进行数据验证。我的最高贷款额为1,000,000,我使用以下方法进行验证。当我在程序中输入1,000,000时,它会返回我的错误方法。我认为(d> = max)会让我达到并包括我的最大值。任何人都可以看到这个方法的问题,或者我可能在我的代码中寻找问题的其他地方。
感谢任何帮助。
public static double getDoubleWithinRange(Scanner sc, String prompt, double min, double max)
{
double d = 0.0;
boolean isValid = false;
while (isValid == false)
{
d = getDouble (sc, prompt);
if (d <= min)
{
System.out.println(
"Error! Number must be greater than " + min + "." );
}
else if (d >= max)
{
System.out.println("Error! Number must be less than " + max + "." );
}
else
isValid = true;
}
return d;
//从用户那里获取输入 System.out.println(“DATA ENTRY”); double loanAmount = getDoubleWithinRange(sc, “输入贷款金额:”,0,1000000); double interestRate = getDoubleWithinRange(sc, “输入年利率:”,0,20); int years = getIntWithinRange(sc, “输入年数:”,0,100);
答案 0 :(得分:1)
你是说如果金额大于或等于到一百万导致错误。你想说它是否大于显示错误
答案 1 :(得分:1)
使用else if (d>max)
,因为您最多需要1,000,000(并且可以包括1,000,000)。