2012-02-24 85 views
1

我正在写数据验证的贷款计算。我的最高贷款额是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( “数据输入”); 双loanAmount = getDoubleWithinRange(SC, “输入贷款量:”,0,1000000); 双的InterestRate = getDoubleWithinRange(SC, “输入每年利率:”,0,20); INT年= getIntWithinRange(SC, “的年输入数字:”,0100);

+0

显示一些输入和输出(从控制台窗口理想地复制/粘贴);也显示调用此方法的代码和传入的值。 – 2012-02-24 03:08:37

+0

欢迎使用贷款计算器 数据输入 输入贷款金额:1000000 错误!数字必须小于1000000.0。 输入贷款金额: – 2012-02-24 03:10:24

+0

对不起,我不知道如何发布代码,而不是在原始问题 – 2012-02-24 03:12:06

回答

1

你说,如果金额大于或等于一个百万原因的错误。你想说如果它大于显示一个错误

+0

好吧,我把=注销,现在它是(d> max),它仍然说数量需要少于一百万 – 2012-02-24 03:18:35

+0

抱歉改变了错误的一个。这工作谢谢你 – 2012-02-24 03:23:48

1

使用else if (d>max),因为你想要高达1,000,000(和1,000,000可以包括在内)。