var num = "10.00";
if(!parseFloat(num)>=0)
{
alert("NaN");
}
else
{
alert("Number");
}
我想检查一个值是不是一个浮点数,但上面的代码总是返回NaN
,任何想法我做错了什么?如何检查字符串是否不是浮动号码?
var num = "10.00";
if(!parseFloat(num)>=0)
{
alert("NaN");
}
else
{
alert("Number");
}
我想检查一个值是不是一个浮点数,但上面的代码总是返回NaN
,任何想法我做错了什么?如何检查字符串是否不是浮动号码?
!parseFloat(num)
是false
所以你比较false >= 0
你可以这样做:
if(! (parseFloat(num)>=0))
但是这将是更具可读性做到这一点:
if(parseFloat(num) < 0)
因为!
具有更高优先于>=
,所以你的代码确实是
!parseFloat(num)
这是false
然后
>= 0
,false
被强制成0
,并0 >= 0
是真实的,因此alert("NaN")
https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence
parseFloat
返回任一浮子或NaN
,但您正在应用布尔NOT运算符!
,然后将它与另一个浮点进行比较。
你可能想要更多的东西一样:
var num = "10.0";
var notANumber = isNaN(parseFloat(num));
function isFloat(value) {
if(!val || (typeof val != "string" || val.constructor != String)) {
return(false);
}
var isNumber = !isNaN(new Number(val));
if(isNumber) {
if(val.indexOf('.') != -1) {
return(true);
} else {
return(false);
}
} else {
return(false);
}
}