2014-09-30 51 views
2

我正在JavaScript中做一个简单的比较,但它不工作。 这里是脚本为什么在JavaScript中“1.0”不等于“+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/ – 2014-09-30 10:22:04

回答

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

了,所以我需要分析所有的值比较之前飘起..谢谢亲爱的:-) – 2014-09-30 10:25:17

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 2014-09-30 11:14:37

相关问题