2017-01-29 3 views
-1

Я использовал этот код, чтобы получить всего одну колонку, однако его не вычисляя правильноДобавление столбца таблицы в формате валюты

Ожидаемый результат: 13,500.00 В настоящее время выход: 13

я думаю, что проблема в формате числа, но я не знаю, как с этим бороться.

<table id="sum_table" width="300" border="1"> 
     <tr class="titlerow"> 
      <td>Col 1</td> 
     </tr> 
     <tr> 
      <td class="amount">6,000.00</td> 
     </tr> 
     <tr> 
      <td class="amount">1,500.00</td> 
     </tr> 
     <tr> 
      <td class="amount">6,000.00</td> 
     </tr> 
    </table> 
      <div id="total"></div> 
    <script> 
    var theTotal = 0; 
    $(".amount").each(function() { 
     theTotal += parseInt($(this).html()); 
    }); 
    $("#total").html(theTotal); 
    </script> 

ответ

2

Необходимо заменить , на строку, чтобы правильно разбор строки.

theTotal += Number($(this).html().replace(/,/g,'')); 
// or remove all character except digit and dot 
theTotal += Number($(this).html().replace(/[^\d.]/g,'')); 

UPDATE: Позже конвертировать в формат валюты путем преобразования всего в строку.

$("#total").html(theTotal.toString().replace(/\d(?=(?:\d{3})+$)/g,'$&,')) 
// or with 2 decimal point 
$("#total").html(theTotal.toFixed(2).replace(/\d(?=(?:\d{3})+\.)/g,'$&,')) 
+0

Ваш ответ правильный, но как я буду выводить его в формате валюты? . –

+0

не работает :( –

+0

@ShermaineChaingan: обновленный –

Смежные вопросы