2014-09-30 4 views
2

JavaScript에서 간단한 비교를하고 있지만 작동하지 않습니다. 다음 스크립트왜 "1.0"은 JavaScript에서 "+1.0"이 아닌가?

var value = '1.0'; 
var minLimit = '+0.5'; 
var maxLimit = '+999'; 
if (value >= minLimit && value <= maxLimit) { 
    console.log(value); 
} 
else 
{ 
console.log('not matched'); 
} 

은 내가 비교를 놓치고 있나요? 여기가 바이올린입니다. http://jsfiddle.net/9ouwkyyt/

+7

당신이 문자열 비교를하고 있기 때문에 - http://jsfiddle.net/arunpjohny/9ouwkyyt/1/ –

답변

7

숫자 비교가 아니기 때문에 문자열 비교를하고 있기 때문입니다.

숫자 값으로 값을 변환 - 당신이 단항 플러스를 사용할 수 있습니다, 수() 또는 필요에 따라에서는 parseFloat()를

var value = +'1.0'; 
 
var minLimit = +'+0.5'; 
 
var maxLimit = +'+999'; 
 
if (value >= minLimit && value <= maxLimit) { 
 
    console.log(value); 
 
} else { 
 
    console.log('not matched'); 
 
}

+0

그것이 내가 비교하기 전에 떠있는 모든 값을 구문 분석 할 필요가 있어요 .. 감사합니다 사랑 :-) –

3

999 '을 사이에 diffirence가있다 '및 +999.

따옴표가있는 문자는 문자열이고없는 문자는 정수 값입니다. 당신이 원하는 것은 문자열 비교가 아닌 숫자 비교입니다.

0

정수 형식의 결과를 정수로 비교하려는 경우 문자열 만 비교합니다.

var value = '1.0'; 
    var minLimit = '+0.5'; 
    var maxLimit = '+999'; 
    if (parseInt(value)>= parseInt(minLimit) && parseInt(value)<= parseInt(maxLimit)) { 
     console.log(value); 
    } 
    else 
    { 
    console.log('not matched'); 
    } 
+0

설명을 추가하십시오. 코드만으로 낮은 품질의 대기열에 도달했습니다. – RickyA

관련 문제