2011-01-14 17 views

答えて

18

を試してみてくださいあなたが同じように、あなたがtoPrecision()を使用することができ、その後、そのように、parseFloat()と科学的表記法を解析:

result = parseFloat(num.toPrecision(2)); 

あなたがない場合精度を低下させたくない場合は、toFixed()を使用して、特定の小数点以下の数値を取得できます。

+1

これは2小数を生成します。精度は小数点からのカウントではなく、最初の桁からカウントされます。 '' 555.55 ''の 'toPrecision(2)'は 'toFixed(-1)'のようなものを意味します(実際には意味がないので存在しません)。 –

+0

良い点。回答が改訂されました。 –

+0

これは素晴らしいです。これは、ビッグナンバー( '24823492.293849 - > 25000000')だけでなく小数点以下の塵(例えば1/5 + 1/20 - 1/200 + 1/400 + 1/10 = 0.34750000000000003 - > 0.35') – prototype

0

減少した精度の浮動小数点数を取得するには

result = Math.ceil(555.55); 
+3

これは、「5.6e + 2」を表す「560」ではなく、「556」を生成する。 –

10
Number((555.55).toPrecision(2)) 

http://jsfiddle.net/K5GRb/

+1

+1、自分の答えを削除します。これは完全に行く方法です。 –

+0

これはparseFloat((555.55).toPrecision(2))よりも優れています – asmmahmud

-3

eval悪です。

ではなく

var result = num.toPrecision(2).toString(10);

います。

+1

toPrecisionは文字列を返します。そのためtoStringを呼び出すと違いはありません。 –

+1

FF3.5.3ではまだ5.6e + 2を表示 – Ricky

+0

申し訳ありませんが、私の悪い.. – timdream

関連する問題