12

ご存じのとおり、javascript のparseFloat機能は、無効な文字に遭遇するまでしか機能しません。たとえば、

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

文字列全体が有効な浮動小数点数でない場合に NaN を返す parseFloat の方法または実装はありますか?

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 に答える