以下に、JavaScriptを使用してフォーマットしようとしている数値があります。しかし、それは NaN を返します。
var v = "153,452.47";
alert(Math.round(v));
次のフィドルを使用できます:例
区切り文字を持つ数値文字列をどのようにフォーマットできますか?
以下に、JavaScriptを使用してフォーマットしようとしている数値があります。しかし、それは NaN を返します。
var v = "153,452.47";
alert(Math.round(v));
次のフィドルを使用できます:例
区切り文字を持つ数値文字列をどのようにフォーマットできますか?
これでうまくいくと思います
var v = "153,452.47";
var float = parseFloat(v.replace(/[^0-9.]/g, ''));
// => 153452.47
整数に丸めたい場合
var v = "153,452.47";
float.toFixed(0);
// => 153452
素敵な小さな関数を作りましょう!
var roundFormattedNumber = function(n){
var result = parseFloat(n.replace(/[^0-9.]/g, ''));
return isNaN(result) ? NaN : result.toFixed(0);
};
これは、ブラックリストの正規表現ではなくホワイトリストの正規表現であるため、提供されている他のソリューションよりもうまく機能します。つまり、次のような数値でも機能します。$ 1,234.56
提供されている他の解決策は、これらの数値では機能しません
roundFormattedNumber("$ 123,456,489.00");
//=> 123456789
roundFormattedNumber("999.99 USD");
//=> 1000
roundFormattedNumber("1 000 €");
//=> 1000
roundFormattedNumber("i like bears");
//=> NaN
コンマを削除する必要があります。
parseFloat("153,452.57".replace(/,/g,"")).toFixed(0);
小数点以下2桁が必要な場合:
parseFloat("153,452.57".replace(/,/g,"")).toFixed(2);
これを試して
var v = "153,452.47";
Math.round(parseFloat(v.replace(",","")));