用javascript添加浮点数

时间:2009-12-07 00:36:20

标签: javascript jquery

我正在使用jQuery,我想总结我的表列中的值,一切似乎工作正常,但我的值返回一个字符串,其中添加了所有值,如:123.5013.0012.35

我如何正确地总结这些?

var totals

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

console.log(totals);

6 个答案:

答案 0 :(得分:16)

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

基本上同样的问题之前已被问过javascript-why-does-this-produce-and-ugly-string-i-would-like-currency,答案应该为你解决。

答案 1 :(得分:5)

这是一个工作版本(在Firefox 3.5中测试):

<!DOCTYPE html>
<html>
<head>
    <title>Sum of nubers</title>

    <script src="jquery.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(function(){
            var total = 0;
            $(".add").each(function(){
                total += parseFloat($(this).text());
            });
            alert(total.toFixed(2));
        });
    </script>
</head>
<body>
<div class="add">23.4567</div>
<div class="add">98.7654</div>
</body>
</html>

这只是众多方法中的一种。对于其他几种方法,请看一下这个问题:

How to convert strings to floats

答案 2 :(得分:3)

var totals

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

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

可能使用Math.round,floor或ceil

答案 3 :(得分:3)

简单试试这个。它适用于我。

    var totals= 0;
    $(".add").each(function() {
        if (jQuery(this).val() != '')
            totals= Number(totals) + Number(jQuery(this).val()); 
    });
   console.log(totals);

答案 4 :(得分:2)

看起来它正在做一个字符串添加。尝试设置var totals = 0;

答案 5 :(得分: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);
  };