2017-02-03 3 views
0

아래 코드는 사용자가 값을 입력하고 컴퓨터가 값을 추측 할 수있게 해주는 프로그램의 시작입니다. 내 입력 유효성 검사에 붙어 있습니다. 나도 같은 소수점 이하 자릿수로 숫자를 비교할 때 내 입력 유효성 검사를 통과 어떤 이유로, 같은 25 및 49 그러나JavaScript : 값의 소수 자릿수가 다른 경우 논리적 비교가 실패합니다.

Image of passed input validation

, 나는, 9, 25과 같이 비교 할 때 비록 입력 유효성 검사해야 그것을 허용, 내 코드의 다른 부분으로 이동합니다. JavaScript가 데이터 유형을 해석하는 방식과 관련이 있다고 가정합니다. 코드가 좀 지저분하고 프로그램이 완전하지 않습니다. 이제 HTML과 입력 유효성 검사에서 값을 가져 오는 중입니다. 여기에 코드가 있습니다.

function runGame() { 
    //get variables from the input fields in HTML form 
    var low = document.getElementById('lowNum').value; 
    var high = document.getElementById('highNum').value; 
    var guess = document.getElementById('compGuess').value; 

    //input validation 
    if (low < high && low > 0 && high <= 50 && guess > 0 && guess <= 10) { 
     alert("Low number: " + low + "\nHigh Number: " + high + "\nComputer Guesses: " + guess); 
     document.getElementById("computerGuessVal").innerHTML = getRndInteger(low, high); 
    } else { 
     alert("Invalid selection. Make sure that the number range is between 1 and 50 and guesses are higher than zero."); 
    } 
} 

function getRndInteger(low, high) { 
    high = Math.floor(high); 
    low = Math.ceil(low); 
    return Math.floor(Math.random() * (high - low + 1)) + low; 
} 
+0

console.log params를 사용하여 데이터 유형을 확인하고 parseInt 또는 parseFloat를 사용하여 올바른 유형으로 지정하십시오. – LordNeo

+0

코드에 구문 오류가 있습니다. 두 번째 닫는 대괄호 때문에 "else"앞에 함수가 끝납니다. – AmericanUmlaut

+1

또한 들여 쓰기가 불규칙하고 불필요한 공백으로 인해 코드를 읽기가 매우 어렵습니다. (구문 오류와 들여 쓰기 및 공백을 처리하기위한 질문을 편집했습니다. 앞으로 더 자세하게 형식을 지정하십시오.) – AmericanUmlaut

답변

0

업데이트 - 나는 데이터 유형 경고 (대해서 typeof 추측)와

를 확인 후 내 코드에서는 parseInt를 추가 해결. 여기에 작업 코드는 다음과 같습니다

// 얻을 HTML 형태로 입력 필드에서 변수와

VAR 낮은 =에서는 parseInt (. document.getElementById를 ('lowNum') 값)를 정수로 변환;

var high = parseInt (document.getElementById ('highNum'). value);

var guess = parseInt (document.getElementById ('compGuess'). value);

제안 해 주셔서 감사합니다.