Javascript比较数字不起作用

1 javascript floating-point max

我正在尝试规范化数据,并意识到它不起作用,因为我得到了不正确的最大值.但是,数字的比较无法正常工作.这是我的代码:

var max = Number.MIN_VALUE;
var min = Number.MAX_VALUE;
for (i = 0; i < array.length; i++) 
{ 
    if(array[i]>max)
    {
        max = array[i];
    }
}

for (i = 0; i < array.length; i++) 
{ 
    if(array[i]<min)
    {
        min = array[i];
    }
}

console.log("max: " + max);
console.log("min: " + min);

for (i = 0; i < array.length; i++)
{
    if(array[i]!=0)
    {   
            if(array[i]>max)
            {
               console.log(i+": " + array[i] + " yes");
            }
            else
            {
               console.log(i+": " + array[i] + " no " + max);
            }

    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了很多控制台输出,但这是一个例子:

241590: 17.5799 no 9.86874
Run Code Online (Sandbox Code Playgroud)

意思是由于某种原因,JS认为17.5799不大于9.86874.为什么会发生这种情况,我该怎么做才能解决这个问题?谢谢!

编辑1:当打印数组[i] - 最大时,我最终得到正确的差异......除了它是否定的.

Dar*_*ves 5

这是因为你的数组包含字符串,而不是数字.

所以'9.95799'> '89 .86874'=> true :)使用数字代替