Javascript 如何检查字符串是否不是浮点数?
我想检查一个值是否不是浮点数,但上面的代码总是返回Javascript 如何检查字符串是否不是浮点数?,javascript,Javascript,我想检查一个值是否不是浮点数,但上面的代码总是返回NaN,知道我做错了什么吗?!parseFloat(num)为false因此您正在比较false>=0 您可以这样做: var num = "10.00"; if(!parseFloat(num)>=0) { alert("NaN"); } else { alert("Number"); } 但这样做更具可读性: if(! (parseFloat(num)>=0)) if(parseFloat(num)=0为真,因
NaN
,知道我做错了什么吗?!parseFloat(num)
为false
因此您正在比较false>=0
您可以这样做:
var num = "10.00";
if(!parseFloat(num)>=0)
{
alert("NaN");
}
else
{
alert("Number");
}
但这样做更具可读性:
if(! (parseFloat(num)>=0))
if(parseFloat(num)<0)
因为
的优先级高于=
,因此您的代码具有更高的优先级
!parseFloat(num)
它是false
然后
=0
,false
被强制为0
,0>=0
为真,因此警报(“NaN”)
parseFloat
返回一个float或NaN
,但您正在应用布尔NOT运算符将其与另一个浮点进行比较
您可能想要更像:
if(parseFloat(num) < 0)
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);
}
}