我需要parseFloat然后用逗号替换点:
sum="<?php echo substr($_tarif_membre,0,-2).'.'.substr($_tarif_membre,-2,2) ?>" * $('#tarif_membre').val()
total_total= sum.replace('.',',')
$('#total_total').val(sum)
如果我不将php回显变量乘以$('#tarif_membre').val()
,它仍会将结果显示为浮点数:12.00(因为它是从php回显的)但是如果我乘以$('#tarif_membre').val()
,结果将显示12,为什么?为什么替换方法不起作用(我需要显示逗号分隔值)
答案 0 :(得分:0)
在Javascript中,整数和浮点数没有区别。当var x = 12.00
转换回字符串时,只显示“12”。
如果要显示格式化的数字,则必须将其保留为字符串("12.00"
);或者你需要一些类似于printf
的行为的代码(Javascript没有;但是有可用的Javascript库实现它,例如here)再次使用与你一样多的小数来格式化它等。
答案 1 :(得分:0)
我认为这就是你要做的事情:
var sum = 12.00 * parseFloat($('#tarif_membre').val());
total_total= sum.toFixed(2).replace('.',',');
$('#total_total').val(total_total);
你应该不使用引号,因为它是一个数字,然后是parseFloat()
#tarif_membre
.val()
,因为那将是一个字符串,然后它们键入主要小数位,这里是在那个浮点上调用.toFixed()
,这将得到"12.00"
,一个字符串。您可以将.
替换为,
(对于我猜测的国际格式吗?)然后我将结果粘贴到#total_total
中,尽管这篇文章我不确定
对于另一个问题,为什么.replace()
不起作用?这是因为在你的代码中它是一个浮点数,而不是一个字符串,只有字符串有替换方法。