使用javascript添加浮动

使用javascript添加浮动,javascript,jquery,Javascript,Jquery,我使用的是jQuery,我想对表列中的值求和,一切似乎都正常,但返回的值是一个字符串,其中添加了所有值,如:123.5013.0012.35 我怎样才能把这些加起来呢 var totals $(".add").each(function(i) { totals += parseFloat($(this).text()).toFixed(2); }); console.log(totals); 以下是一个工作版本(在firefox 3.5中测试): 数之和 $(函数(){ var合计=

我使用的是jQuery,我想对表列中的值求和,一切似乎都正常,但返回的值是一个字符串,其中添加了所有值,如:
123.5013.0012.35

我怎样才能把这些加起来呢

var totals

$(".add").each(function(i) {
  totals += parseFloat($(this).text()).toFixed(2);
});

console.log(totals);
以下是一个工作版本(在firefox 3.5中测试):


数之和
$(函数(){
var合计=0;
$(“.add”).each(函数(){
total+=parseFloat($(this.text());
});
警报(toFixed总数(2));
});
23.4567
98.7654
这只是众多方法之一。看看这个问题,了解其他几种方法:


看起来像是在进行字符串添加。尝试将var总计设置为0

这里有多个错误。一种是不将总数初始化为数字,如0.0。第二个是没有意识到.toFixed()返回一个字符串。Javascript将字符串连接在一起,而不是添加数字

基本上相同的问题已经被问过了,答案应该能帮你解决这个问题

var totals

$(".add").each(function(i) {
  totals += parseFloat($(this).text());
});

console.log(totals.toFixed(2));

可能使用数学。圆形、地板或天花板

简单试试这个。它对我有用

  function update_total() {
    var total = 0.0;
    $('.invoice_service_price').each(function(index){
      var val=parseFloat($(this).html().trim());
      if(!isNaN(val)) total += val;
    });
    alert("total="+total);
  };
    var totals= 0;
    $(".add").each(function() {
        if (jQuery(this).val() != '')
            totals= Number(totals) + Number(jQuery(this).val()); 
    });
   console.log(totals);

它是一种货币,所以我需要它有2个小数位的精度。如果您只是想让最终输出具有该精度,请在结束前暂停调用toFixed(2)。到那时为止,所有的事情都是添加数字,而不是字符串。如果你关心中间的计算,你需要考虑几件事。如果这是一个“玩具”应用程序,请对toFixed()的输出使用parseFloat()以确保它再次是一个数字,然后在最后再次调用toFixed()。如果这是一个“真实”的应用程序,您可能不应该对货币使用浮点值。请等到最后再使用。我不应该初始化值,对吗?是的,或者结果未定义。在我尝试的FF3.5中,如果我没有初始化它,结果是“NaN”。它仍然返回一个字符串,如
02.3402220.000
这对我来说很有效,我将浮点存储在一个对象中,不知何故它一直被视为一个字符串,所以我是明确的:
[-]total+=parseFloat($(This).text())
[+]
total=parseFloat(total)+parseFloat($(this.text())伙计。为什么在得到总数之前要使用
toFixed
?这将它转换为一个字符串,然后它们被追加。你的产出应该让你参与其中。其次,假设它确实如您所想的那样工作(保持为浮点数),那么在得到总数之前,您可能会降低精度。
    var totals= 0;
    $(".add").each(function() {
        if (jQuery(this).val() != '')
            totals= Number(totals) + Number(jQuery(this).val()); 
    });
   console.log(totals);