数据验证

时间:2012-02-24 03:06:50

标签: java

我正在编写贷款计算并进行数据验证。我的最高贷款额为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);

2 个答案:

答案 0 :(得分:1)

你是说如果金额大于或等于到一百万导致错误。你想说它是否大于显示错误

答案 1 :(得分:1)

使用else if (d>max),因为您最多需要1,000,000(并且可以包括1,000,000)。