jQuery总结了不正确的值

时间:2017-06-23 13:37:25

标签: php jquery html

我试图在jquery中总结两个值(值可以是十进制和非十进制值)但它返回的值不正确。

以下是代码

<?php
$licence_cost_inr = 1290.058;
$converted_currency = 64.056;
?>

的jQuery

$(document).ready(function(){
    $('input[type=checkbox]').change(function(){
      var total = 0;
      var txt = '';
      var inr = '<?php echo $converted_currency; ?>';
      var costinr = '<?php echo $licence_cost_inr; ?>';
      $('input:checkbox:checked').each(function(){
        total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
        txt += $(this).attr('data')+', ';
      });
      var convert = total*inr;
      var finalinrcost = convert+costinr;
      alert(finalinrcost);

      $("#costdisplay").html(total);
      $("#inrdisplay").html(finalinrcost);
      $("input[name=ap_amount]").val(total);
      $("input[name=payment]").val(total);
      $("input[name=amount]").val(total*inr+costinr);
      $("input[name=apc_2]").val(txt.slice(0,-2));
      $("input[name=custom]").val(txt.slice(0,-2));
      $("input[name=udf2]").val(txt.slice(0,-2));
    });
  });

此处finalinrcost返回不正确的值。预期的总和值例如为1350.67,但它会返回意外的内容,例如129.04341290.434。我没有得到错误是什么,因为我只是想添加一些东西。请帮忙。

2 个答案:

答案 0 :(得分:2)

因为您用于计算的其中一个值是string。例如:

'123' + 123 == '123123'

答案 1 :(得分:1)

你可以像这个例子那样做。如果您收到的字符串应该转换为parseIntparseFloat

$(document).ready(function(){
      var total = 0;
      var txt = '';
      var inr = '10';
      var costinr = '1290.058';
      total += 200;
      var convert = total*parseFloat(inr);
      var finalinrcost = convert+parseFloat(costinr);
      alert(finalinrcost);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>