2012-02-24 86 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可以包括在內)。