2017-01-16 85 views
-2

我正在使用number_format($number,2,",",".")。一个例子是数以这种格式:使用JavaScript行8.726,36替换多个点和逗号javascript

我做总和:

var totals = [0,0,0,0,0,0]; 

$(document).ready(function(){ 
    var $dataRows = $("#sum_table tr:not('.totalColumn, .titlerow')"); 
    $dataRows.each(function() { 
     $(this).find('.rowDataSd').each(function(i) {   
      totals[i] += parseFloat($(this).html()); 
     }); 
    }); 

    $("#sum_table td.totalCol").each(function(i) { 
     $(this).html(totals[i].toFixed(2).replace(".",",")+ " kn"); 
    }); 
}); 

但总不好(蓝色行)。

Photo

我如何可以使用多个.replace(",",".")

+1

'.replace(/,/ g,'。');'? – putvande

+1

您清楚知道JavaScript总是使用'.'作为十进制,并且您清楚知道如何替换字符,那么问题是什么?你的'totals [i] + = parseFloat($(this).html());'line忽略JS的数字格式,并给它提供像'8.726,36'这样的值,期望它实现数以千计的数字。它不会神奇地做到这一点,*你必须这样做,就像你在最后显示时做的那样。 –

+0

是你应该怎么使用的问题。而不是作为千位分隔符?这与本地化有关。这个问题对你有帮助吗? http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript – Kokodoko

回答

1

解析数字进出人类可读的格式是一个可怕的想法。如果有一天您的团队决定使用不同的格式,例如1'234'567.89?你塞满了!

相反,产生类似:

<span class="number" data-value="1234567.89">1.234.567,89</span> 

这样,您就可以访问.data('value')得到的数量,持续的实际值,不用担心未来。

+0

而我告诉你,你做的根本不对。 –