2010-08-13 78 views
0

我需要parseFloat这个然后用逗号来代替点:我怎么能parseFloat一个PHP变种JavaScript的内部

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,为什么?为什么不替换方法不起作用(我需要显示逗号分隔值)

+1

你想用该代码做什么? – 2010-08-13 10:03:25

+0

显示来自mysql数据库的货币值 – tetris 2010-08-13 10:09:04

回答

0

认为这是你想要做什么:

var sum = 12.00 * parseFloat($('#tarif_membre').val()); 
total_total= sum.toFixed(2).replace('.',','); 
$('#total_total').val(total_total); 

You can try it out here

你应该离开过引号,因为它是一个数字,然后parseFloat()#tarif_membre.val(),因为这将是一个字符串,那么他们关键mainain金钱这里是浮球调用.toFixed()位小数,这将让你"12.00" ,一个字符串。您可以将它们替换.,(国际格式化我猜?)然后我坚持这一结果到#total_total,虽然这一块,我上不确定。

对于其他问题,为什么不.replace()工作?这是因为在你的代码中它是一个浮点数,而不是一个字符串,只有字符串有替换方法。

+0

谢谢man !,这正是我试图实现的目标。 – tetris 2010-08-13 12:33:39

0

在Javascript中,有一个整数和浮点数之间没有区别。 var x = 12.00将转换回字符串时,只显示“12”。

如果你想显示的数字格式,你要么必须保持它作为一个字符串("12.00");或者你需要在行为printf类似的一些代码(JavaScript没有;但也有实现它,例如here JavaScript库)只要你喜欢尽可能多的小数再次格式化。