62

世界のさまざまな地域でのJavaScriptのparseFloat関数のデフォルトの動作について質問があります。

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

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

米国で異なる文化の数値形式を解析する方法を尋ねているのではないことに注意してください。スウェーデンまたはブラジルのparseFloatは、米国内と同じように動作しますか、それともローカル形式の数値を期待しますか?または、これについてよりよく考えるために、ブラジル/スウェーデンの開発者は、テキストボックスからテキストを抽出した後にparseFloatを使用する前に、文字列を英語形式に変換する必要がありますか?

これが意味をなさない場合はお知らせください。

4

4 に答える 4

74

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

解析し.ないだけです,

私はブラジル人です。10進数を解析する前に、コンマをドットに置き換える必要があります。

parseFloat仕様

于 2012-10-02T16:36:59.057 に答える
15

いいえ、を解析するようにparseFloat指定されDecimalLiteralsています。これは、ドットを小数点記号として使用します。現在の環境のロケール設定には依存しません。

于 2012-10-02T16:38:51.633 に答える
4

スウェーデン/ブラジルだけではありません。F.ex のように、米国ではコンマを大量に追加することがよくあります$5,762,325.25

このparseFloat関数は基本的に、ロケール文字列ではなく、10 進数を扱います。

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

于 2012-10-02T16:43:50.557 に答える