2012-12-02 26 views
11
var calcTotalprice = function() { 
    var price1 = parseFloat($('#price1').html()); 
    var price2 = parseFloat($('#price2').html()); 
    overall = (price1+price2); 
    $('#total-amount').html(overall); 
} 

var price1 = 1.99; 
var price2 = 5.47; 

如何添加功能改变点到逗号价格数量和圆形它两个小数jQuery的更换点,以逗号和圆形它

+1

-1因为我不认为这个问题显示任何关于如何使用JavaScript代替文本,如何舍入数字或如何指定尾随小数的研究工作。 – Nope

回答

48

您可以使用“ .toFixed(X)“功能来圆你的价格:

price1 = price1.toFixed(2) 

而且比你可以使用方法”的ToString()”到你的价值转换为字符串:

price1 = price1.toString() 

此外,您可以使用方法“.replace(”..“,”..“)”来替换“。”。对 “”:

price1 = price1.replace(".", ",") 

结果:

price1 = price1.toFixed(2).toString().replace(".", ",") 

更新答案

.toFixed已经返回一个字符串,这样做的ToString()是没有必要的。

price1 = price1.toFixed(2).replace(".", ","); 

已经足够了。

+1

请注意,用字符串替换''作为搜索参数将仅替换第一个。当然,这就是所有OP的需求。 –

+0

+1:我不会在这里留下我的答案,因为它被与您的解决方案相同的解决方案downvoted。所以我只是+1你的。关于你的解决方案我唯一的评论是,OP提到了“四舍五入”,所以如果是这种情况,你可能需要添加到你的答案。我知道'1.99'的要求最终为'2,00',除非OP错过了使用舍去四舍五入的条件。 – Nope

+2

@FrançoisWahl:'toFixed'四舍五入。 '(1.999).toFixed(2)'出来'“2.00”'。 (注意1.99被舍入到小数点后两位仍然是1.99,而不是2.00)。:-) –

4

试试这个:

var price1 = 1.99234; 

// Format number to 2 decimal places 
var num1 = price1.toFixed(2); 

// Replace dot with a comma 
var num2 = num1.toString().replace(/\./g, ','); 
+0

+1,因为它工作正常:http://jsfiddle.net/tcGuu/我不确定那个人是谁downvoted与接受答案相同的结果所有其他答案。很腥。 – Nope

+0

为什么在**已经是数字**的东西上使用'parseFloat'。你的'parseFloat'是一个无操作。 –