Javascript jQuery将点替换为逗号并将其四舍五入

Javascript jQuery将点替换为逗号并将其四舍五入,javascript,Javascript,如何添加将价格数字中的点改为逗号并将其四舍五入为两位小数的函数尝试以下操作: var calcTotalprice = function () { var price1 = parseFloat($('#price1').html()); var price2 = parseFloat($('#price2').html()); overall = (price1+price2); $('#total-amount').html(overall); } var

如何添加将价格数字中的点改为逗号并将其四舍五入为两位小数的函数尝试以下操作:

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;
您可以使用“.toFixed(x)”函数对价格进行四舍五入:

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, ',');
然后可以使用“.toString()”方法将值转换为字符串:

price1 = price1.toFixed(2)
此外,您还可以使用“.replace”(“…”,“.”)方法替换“.for”,”:

结果:

price1 = price1.replace(".", ",")
更新的答案

.toFixed已返回字符串,因此不需要执行.toString()。 这就足够了:

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

用类选择器取整和替换的解决方案。 此代码的格式为10.0到10,00

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

请注意,
replace
使用字符串作为搜索参数只会替换第一个字符串。当然,这就是OP在这种情况下所需要的全部了。+1:我不会把我的答案留在这里,因为我的答案与你的答案一样被否决了。所以我只是+1你的。关于你的解决方案,我唯一的意见是OP提到了四舍五入,因此如果是这种情况,你可能需要将其添加到你的答案中。我理解要求为
1.99
的结果是
2,00
,除非非正常操作小姐使用了术语舍入。@FrançoisWahl:
toFixed
进行舍入<代码>(1.999)。toFixed(2)出现
“2.00”
。(请注意,四舍五入到小数点后两位的
1.99
仍然是
1.99
,而不是
2.00
:-)@T.J.Crowder:非常好。谢谢,这是非常好的信息。我会记住这一点+1然而,由于OP的输入值为
1.99
,并且要求四舍五入和逗号,如果这是预期的结果,我们是否仍然不必使用
Math.round
来获得2,00?@FrançoisWahl:但显然
1.99
并不意味着要变成
2.00
。如果你的精度低于两位数,那么两位数的精度就没有意义。-1因为我认为这个问题没有显示出任何关于如何替换文本、如何舍入数字或如何指定尾随小数的研究成果,使用JavaScript.+1,因为它工作得很好:我不确定那个人是谁,他对所有其他答案投了反对票,结果与被接受的答案相同。非常可疑。为什么要在已经是数字的东西上使用
parseFloat
。您的
parseFloat
是不可操作的。
price1 = price1.toFixed(2).replace(".", ",");
$('.formatInteger').each(function(){
  let int = parseFloat($(this).text()).toFixed(2)
  $(this).html(int.toString().replace(".", ","))
})