2011-05-23 94 views

回答

195

是這樣的功能 - parseFloat

parseFloat(document.getElementById(amtid4).innerHTML); 

對於格式化號碼,使用toFixed

var num = parseFloat(document.getElementById(amtid4).innerHTML).toFixed(2); 

num現在是與兩位小數格式化的數字的字符串。

+1

我們能否與2個小數點變量如120.50?現在我只得到120.5。 – Varada 2011-05-23 10:27:08

+1

@Varada請參閱編輯。 – lonesomeday 2011-05-23 10:31:08

+11

引用@PhilipWhitehouse「請讀者在將來閱讀這篇文章時,不要使用float來存儲貨幣,你將失去精度和數據,你應該將它存儲爲整數美分(或便士等),然後轉換在輸出之前。「。資料來源:http://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript – 2013-11-27 17:33:16

55

您還可以使用(適用於整數和浮點數無需基數和使用)的Number構造/功能:

Number('09'); /=> 9 
Number('09.0987'); /=> 9.0987 
+3

+1,'Number' - 或'+' - 是我要走的路。 – 2011-05-23 10:44:23

8

這工作:

var num = parseFloat(document.getElementById(amtid4).innerHTML, 10).toFixed(2); 
1

一個簡單的速記方法將使用+ x 它保持標誌完整以及十進制數字。 另一種選擇是使用parseFloat(x)。 parseFloat(x)和+ x之間的區別是空字符串+ x返回0,其中as parseFloat(x)返回NaN。

0

這是相當危險的依賴於JavaScript功能比較和使用數字播放。在javascript(0.1 + 0.2 == 0.3)由於舍入錯誤將返回false。使用math.js庫。

0

我做了一個小幫手功能做到這一點,捕獲所有異常數據

function convertToPounds(str) { 
    var n = Number.parseFloat(str); 
    if(!str || isNaN(n) || n < 0) return 0; 
    return n.toFixed(2); 
} 

演示是here

相關問題