3

あなたが知っているように、それはもっとも頼まれた話題の一つなので、丸め誤差(実際にはエラーではありませんが、よく分かっています)に問題があります。代わりに私のポイントを説明するの することは、私は私が持っていると私は得ることができるようにしたい入力可能なものを数字の例をあげる:Javascriptで表記法番号を切り捨てる方法はありますか?

のは

var a = 15 * 1e-9; 
alert(a) 

出力

1.5000000000000002e-8 
を言ってみましょう

私は代わりに1.5e-8を得ることができたいと思っていますが、10e8を丸めて10e8で割り算することはできません。なぜなら、e-8かe-45なのかわからないからです。

基本的に部分を取得し、toFixed(3)を適用して指数部を戻したいと思っています。

私はすべてのアイデアを文字列に変換して解析するが、それはちょうどいないようです...

だろうか?


(あなたはこれが多くの重複の一つですが、私は同様の質問を見つけることができなかった、だけで関連するものを感じた場合、私は事前に謝罪)

ガエルが

答えて

8

あなたはtoPrecisionメソッドを使用することができます:

var a = 15 * 1e-9; 
a.toPrecision(2); // "1.5e-8" 
+1

これは、文書化されているように、(typeof a ==) "文字列"を提供します。出力に最適です。 "数値"を取得したい場合は、 'var b = 1 * a.toPrecision(2);'を実行することができます。計算の途中で丸めに注意してください。 –

+1

@Stephen、yes、または 'var b = + a.toPrecision(2);または' var b = Number(a.toPrecision(2)); ' – CMS

+0

簡単な解決策は期待できませんでした!次回はドキュメンテーションを詳しく見ていきます! –

関連する問題