2012-10-02 4 views
38

JavaScriptのparseFloat関数の世界のさまざまな部分でのデフォルトの動作について質問があります。異なる文化のJavaScript parseFloat

米国では、文字列 "123.34"でparseFloatを呼び出すと、123.34の浮動小数点数が得られます。

スウェーデンやブラジルでコードを開発している場合、小数点記号としてピリオドの代わりにカンマを使用すると、parseFloat関数の期待値は「123,34」または「123.34」になります。

米国では、別のカルチャの数値形式を解析する方法は問いません。スウェーデンやブラジルのparseFloatは米国内と同じように動作するのか、それともローカルフォーマットの数値が必要なのでしょうか?それとも、ブラジル/スウェーデンの開発者は、テキストボックスからテキストを抽出してからparseFloatを使用する前に、文字列を英語の形式に変換する必要がありますか?

これが理にかなっていないかどうか教えてください。

+1

類似している:http://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript – dyoo

答えて

54

parseFloatでは、ロケールの定義を使用せず、10進リテラルの定義を使用します。

それだけ.ない,

を解析し、私はブラジル人だと私は小数を解析する前に、ドットでカンマを交換する必要があります。

parseFloat specification

+0

質問が回答しました。誰も助けてくれてありがとう! – chumphries

3

スウェーデン/ブラジルだけではありません。米国のF.ex。多くの場合、カンマを大量に追加します($5,762,325.25など)。

関数parseFloatは本質的に小数点以下を扱い、ロケール文字列は扱いません。

一般に、JavaScriptは一般的な文字列/数値/日付をロケールに適した形式に変換することがありますが、逆もありません。

関連する問題