12

如您所知,javascript 的parseFloat函数仅在遇到无效字符时才起作用,例如

parseFloat("10.123") = 10.123
parseFloat("12=zzzz") = 12
parseFloat("z12") = NaN

如果整个字符串不是有效的浮点数,是否有 parseFloat 的方法或实现会返回 NaN ?

4

3 回答 3

21

改用这个:

var num = Number(value);

然后你可以这样做:

if (isNaN(num)) {
    // take proper action
}
于 2010-07-15T15:29:42.350 回答
4

也许尝试:

var f = parseFloat( someStr );
if( f.toString() != someStr ) {
  // string has other stuff besides the number
}

更新:不要这样做,使用@dcp的方法:)

于 2010-07-15T15:30:34.813 回答
0
var asFloat = parseFloat("12aa");
if (String(asFloat).length != "12aa".length) {
     // The value is not completely a float
}
else {
     // The value is a float
}
于 2010-07-15T15:33:03.780 回答