自动计算包括小数的值

时间:2017-07-07 14:38:35

标签: javascript html

我有一个html表单,用户可以在5个输入字段(一周中的几天)中添加小时数。

然后总时数会显示在表单的底部。

这对于整数小时工作正常,但是当添加类似7.4的东西时,总数会将其四舍五入为7

见下文: 有没有办法添加小数?

$(document).ready(function() {
  $('.calc').change(function() {
    var total = 0;
    $('.calc').each(function() {
      if ($(this).val() != '') {
        total += parseInt($(this).val());
      }
    });
    $('#total').html(total);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="form-control  calc" name='mon'>
<input type="text" class="form-control  calc" name='tue'>
<span id="total"></span>

3 个答案:

答案 0 :(得分:1)

正如@MysterX指出的那样,您正在将用户的输入转换为整数(整数)形式。 parseFloat将占小数位。

答案 1 :(得分:1)

为了获得小数位而不是长而丑陋的浮点数,请更改此行

total += parseInt($(this).val());

到此

total += parseFloat($(this).val());

并更改此行

$('#total').html(total);

到此

$('#total').html(total.toFixed(2)); //If you want two decimals

答案 2 :(得分:0)

您需要使用parseFloat代替,因为parseInt会四舍五入。

total += parseFloat($(this).val());

<强> >>Sample Demo<<