解析parseFloat和十进制字符串

时间:2016-04-11 18:12:24

标签: javascript jquery

我已经阅读了几个例子,如果我的小数点值减少到2个位置,但我尝试的任何东西似乎都与我用来计算小计的当前函数一起工作..任何人都可以给我一些建议如何使这项工作正常。 (例如:我目前得到的值像1848.0198768,但需要它只是1848.02)。

这是我的calculateSubTotal代码:

  function calculateSubtotal()
  {
   var sum = 0;
   $(".clamount").each(function(i,e)
   {
    var v = parseFloat($(e).val());
     if(isNaN(v))
     {
      v = 0;
     }
    if($(e).attr("data-column")=="pbDebit") v = -v;
    sum += v;
   });
  $("#subtotal").text(sum);
  $("#bTotalBookingAmount").val(sum);

 I have tried the following to no avail:
 // var subtotalNew = parseFloat($('#subtotal').text(sum).toFixed(2));
 // $("#subtotal").text(subtotalNew);
 // $("#bTotalBookingAmount").val(subtotalNew);
 }

非常感谢任何指导。我假设代码由于NaN值而无法工作(我试图在if(isNaN(v))部分中考虑它,它总是数字而且从不任何字母字符,所以我有点困惑。

2 个答案:

答案 0 :(得分:1)

使用toFixed(2) 减少值并将其四舍五入为2个十进制值。

答案 1 :(得分:0)

谢谢Kenney ...阅读建议的链接后,我现在正常运行代码。我不认为我能够将你标记为正确的答案,因为它只是一个评论。但这些信息完美无缺。非常感谢你。

 function calculateSubtotal()
 {
  var sum = 0;
  $(".clamount").each(function(i,e)
  {
   var v = parseFloat($(e).val());
   if(isNaN(v))
   {
    v = 0;
   }
  if($(e).attr("data-column")=="pbDebit") v = -v;
  sum += v;
});
  sum = sum.toFixed(2);