網站搜尋

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.555
  • Math.Round(55.555) -> 56.000
  • 56.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))