2011-01-14 61 views

回答

18

爲了得到降低精度浮點數,你可以使用toPrecision()像你這樣做,然後解析科學記數法與parseFloat(),就像這樣:

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

如果你這樣做不希望降低精度,您可以使用toFixed()來獲取具有一定數量小數的數字。

+1

這會產生2位小數。精度不是從小數點開始計數,而是從第一位開始計數。 `toPrecision(2)`爲``555.55「`意味着類似於`toFixed(-1)`(這不存在,因爲它沒有意義)。 – 2011-01-14 08:31:46

+0

好點。回答修改。 – 2011-01-14 08:41:41

+0

這真棒。這很好地格式化大數字(`24823492.293849 - > 25000000`)以及帶小數點的數字(例如1/5 + 1/20 - 1/200 + 1/400 + 1/10 = 0.34750000000000003 - > 0.35`) – prototype 2013-06-10 16:29:21

0

嘗試

result = Math.ceil(555.55); 
+3

這產生`556`,而不是`5.6`,這是`5.6e + 2`所代表的。 – 2011-01-14 08:32:29

-3

eval是邪惡的。

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

代替。

相關問題