web-dev-qa-db-ja.com

科学表記法を含む文字列をJavascriptの数値形式に修正する方法

文字列があります(例: "4.874915326E7")。 JavaScriptの数値形式に変換する最良の方法は何ですか? (intまたはfloat)? parseInt()を試しても、最後のEは無視されます。

40
Olga

編集:

この答えは混乱を招いているようです。元の質問は、文字列形式の科学表記法を数値に変換する方法を尋ねていました(計算に使用できるようにするため)。ただし、この答えを見つけたかなりの数の人は、科学表記法としてjavascriptで表されている数値をより見やすい形式に変換することだと考えているようです。それが実際に目標(プレゼンテーション)である場合、代わりに数値を文字列に変換する必要があります。これは、計算で簡単に使用できないことを意味することに注意してください。

元の回答:

文字列としてNumber関数に渡します。

_Number("4.874915326E7") // returns 48749153.26
Number("4E27") // returns 4e+27
_

科学表記法の数値を文字列に変換する:

これは 別の質問 で最もよく答えられますが、その質問から私は個人的に .toLocaleString() を使用するソリューションが好きです。特定のソリューションは負の数では機能しないことに注意してください。便宜上、以下に例を示します。

_(4e+27).toLocaleString('fullwide', {useGrouping:false}) // returns "4000000000000000000000000000"
_
60
Joseph Marikle

このようなものを試してください

デモ

Number("4.874915326E7").toPrecision()
10
Pranay Rana

文字列の前に+記号を使用して数値を取得することもできます。

+"4.874915326E7" // == 48749153.26
7