2011-05-23 93 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

相关问题