javascript - 將數字四捨五入到小數點後兩位
我完全不知道該怎麼做這個?我正在加上逗號的數字,結果當然總是會有太多小數位數的數字。有人能幫忙嗎?
答案#1
編輯 2:
像這樣使用 Number 物件的 toFixed 方法:
var num = Number(0.005) // The Number() only visualizes the type and is not needed
var roundedString = num.toFixed(2);
var rounded = Number(roundedString); // toFixed() returns a string (often suitable for printing already)
它將 42.0054321 四捨五入到 42.01
它將 0.005 四捨五入到 0.01
它將 -0.005 四捨五入為 -0.01(所以在 0.5 的邊界處四捨五入時,絕對值會增加)
jsFiddle 範例
答案#2
更新: 請記住,在這個答案最初於2010年撰寫時,下面的函數 toFixed() 的運作方式略有不同。toFixed() 現在似乎會做一些四捨五入,但不是以嚴格的數學方式。因此使用時要小心。請自行測試……下面描述的方法會如數學家所期望的那樣進行四捨五入。
toFixed()- 方法將數字轉換為字串,保留指定的小數位數。它並不會真正對數字進行四捨五入,而是截斷數字。Math.round(n)- 將數字四捨五入到最接近的整數。因此會將:
0.5 -> 1; 0.05 -> 0
所以如果你想要將數字 0.55555 四捨五入到小數點後第二位;你可以這樣做(這是逐步概念):
0.55555 * 100=55.555Math.Round(55.555)-> 56.00056.000/100=0.56000(0.56000).toFixed(2)-> 0.56
而這是代碼:
(Math.round(number * 100)/100).toFixed(2);
答案#3
這對我有效:
var new_number = float.toFixed(2);
範例:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
答案#4
之前的答案又忘了把輸出打成數字了。有好幾種方法可以做到這一點,取決於你的喜好。
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
