2012-02-24 3 views
1

데이터 유효성 확인으로 대출 계산을 작성했습니다. 내 최대 대출 금액은 1,000,000이며 아래 유효성 확인을 위해이 방법을 사용하고 있습니다. 내가 프로그램에 1,000,000을 입력하면 오류 메쏘드가 다시 나타난다. 내 생각에 (d> = 최대) 내 최대까지 올라갈 수있게 해줄 것이다. 누구나이 방법으로 문제를 볼 수 있습니까? 아니면 문제의 코드에서 다른 부분을 찾아야 할 수도 있습니다.데이터 유효성 검사

도움을 주시면 감사하겠습니다.

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 ("데이터 입력"); double loanAmount = getDoubleWithinRange (sc, "대출 금액 입력 :", 0, 1000000); double interestRate = getDoubleWithinRange (sc, "연간 이자율 입력 :", 0, 20); int years = getIntWithinRange (sc, "연도 수 입력 :", 0,100);

+0

일부 입력 및 출력 표시 (이상적으로 콘솔 창에서 복사/붙여 넣기); 또한이 메서드를 호출하는 코드와 전달되는 값을 보여줍니다. –

+0

대출 계산기에 오신 것을 환영합니다 DATA ENTRY 대출 금액 입력 : 1000000 오류! 숫자는 1000000.0보다 작아야합니다. 대출 금액 입력 : –

+0

죄송합니다. 원래 질문 이외의 코드를 게시하는 방법을 모르겠다. –

답변

1

금액이 보다 크거나에서 100 만분의 1이면 오류가 발생한다고 말하고있는 것입니다. 오류를 표시하는 것보다 큰 경우

+0

확인해 봤지만 이제는 (d> 최대)이며 숫자는 백만 미만이어야한다고 –

+0

죄송합니다. 잘못된 것을 변경했습니다. 그게 고마워. –

1

else if (d>max)을 사용하십시오. 최대 1,000,000 개 (및 1,000,000 개를 포함 할 수 있음)가 필요하기 때문입니다.