根據http://www.mredkj.com/javascript/nfbasic2.html,以下代碼將導致5.6e + 2。如何在沒有科學記數法的情況下顯示「toPrecision」的結果?
num = 555.55;
result = num.toPrecision(2); // result will equal 5.6e+2
我怎樣才能讓結果變量的輸出中顯示沒有科學記數法(即,電子)?
根據http://www.mredkj.com/javascript/nfbasic2.html,以下代碼將導致5.6e + 2。如何在沒有科學記數法的情況下顯示「toPrecision」的結果?
num = 555.55;
result = num.toPrecision(2); // result will equal 5.6e+2
我怎樣才能讓結果變量的輸出中顯示沒有科學記數法(即,電子)?
爲了得到降低精度浮點數,你可以使用toPrecision()
像你這樣做,然後解析科學記數法與parseFloat(),就像這樣:
result = parseFloat(num.toPrecision(2));
如果你這樣做不希望降低精度,您可以使用toFixed()來獲取具有一定數量小數的數字。
嘗試
result = Math.ceil(555.55);
這產生`556`,而不是`5.6`,這是`5.6e + 2`所代表的。 – 2011-01-14 08:32:29
Number((555.55).toPrecision(2))
eval
是邪惡的。
做
var result = num.toPrecision(2).toString(10);
代替。
這會產生2位小數。精度不是從小數點開始計數,而是從第一位開始計數。 `toPrecision(2)`爲``555.55「`意味着類似於`toFixed(-1)`(這不存在,因爲它沒有意義)。 – 2011-01-14 08:31:46
好點。回答修改。 – 2011-01-14 08:41:41
這真棒。這很好地格式化大數字(`24823492.293849 - > 25000000`)以及帶小數點的數字(例如1/5 + 1/20 - 1/200 + 1/400 + 1/10 = 0.34750000000000003 - > 0.35`) – prototype 2013-06-10 16:29:21