为什么"1.0〃;不等于“+1.0〃;在JavaScript中

Why "1.0" is not equal to "+1.0" in JavaScript?

本文关键字:JavaScript 不等于 为什么 quot      更新时间:2023-09-26

我正在用JavaScript做一个简单的比较,但它不起作用。这是的脚本

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/

这是因为您正在进行字符串比较,而不是数值比较。

将值转换为数值-您可以根据需要使用一元加号、Number()或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');
}

"+999"和+999之间存在差异。

带引号的是一个字符串,而不带引号的则是一个整数值。您要做的是数字比较,而不是字符串比较。

您只比较字符串,因为如果您想以整数格式进行比较,请将结果转换为整数。

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');
    }