web-dev-qa-db-ja.com

異なる文化のJavaScript parseFloat

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

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

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

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

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

45
chumphries

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

.ではなく,のみを解析します

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

parseFloat仕様

いいえ、 parseFloatを指定 解析 DecimalLiterals 。小数点を小数点として使用します。現在の環境のロケール設定に依存しません。

10
Bergi

スウェーデン/ブラジルだけではありません。 F.exでは、多くの場合、$5,762,325.25

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

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

4
David Hellsing