Добавление поплавков с помощью JavaScript - PullRequest
9 голосов
/ 07 декабря 2009

Я использую jQuery, и я хочу суммировать значения в столбце таблицы, кажется, все работает нормально, но мое значение возвращает строку со всеми добавленными значениями, например: 123.5013.0012.35

Как мне их правильно сложить?

var totals

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

console.log(totals);

Ответы [ 6 ]

16 голосов
/ 07 декабря 2009

У вас там несколько ошибок. Никто не инициализирует итоговые значения чем-то числовым, например, 0.0. Второй не понимает, что .toFixed () возвращает строку. Javascript объединяет строки вместе, а не добавляет числа.

По сути, тот же вопрос был задан ранее как javascript-почему-то-это-производить-и-уродливая-строка-я-хотел-валюта и ответы там должны решить эту проблему для вас

5 голосов
/ 07 декабря 2009

Вот рабочая версия (протестирована в 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>

Это только один из многих способов сделать это. Посмотрите на этот вопрос для нескольких других методов:

Как преобразовать строки в числа с плавающей запятой

3 голосов
/ 10 апреля 2014

Просто попробуйте это. это работает для меня.

    var totals= 0;
    $(".add").each(function() {
        if (jQuery(this).val() != '')
            totals= Number(totals) + Number(jQuery(this).val()); 
    });
   console.log(totals);
3 голосов
/ 07 декабря 2009
var totals

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

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

возможно использовать Math.round, floor или ceil

2 голосов
/ 04 апреля 2011
  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);
  };
2 голосов
/ 07 декабря 2009

Похоже, что он добавляет строку. Попробуйте установить var total = 0;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...