Javascript / Jquery不正确的总和计算

Javascript/Jquery Incorrect sum calculation

本问题已经有最佳答案,请猛点这里访问。

我尝试使用javascript计算一些文本框的总和,但在某些情况下,它会给出不准确的结果。

小提琴

输入值:234.32和32.34

结果:266.659999999997

预期结果:266.66

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<input type="text" class="unitrate" />
<input type="text" class="unitrate" />
<input type="text" id="txtsum" />    


$(document).on('keyup',".unitrate", function (e) {
            calculateunitrateSum();
        });


function calculateunitrateSum() {
            var unitratesum = 0;
            $(".unitrate").each(function () {
                //add only if the value is number
                if (!isNaN(this.value) && this.value.length != 0) {
                    unitratesum += parseFloat(this.value);
                }
                else {
                    $(this).val('0')
                }
            });
            $('#txtsum').val(unitratesum);
        }


您可以使用tofixed(2)将其四舍五入到所需的位数。

现场演示

1
 $('#txtsum').val(unitratesum.toFixed(2));

The toFixed() method formats a number using fixed-point notation.


您可以使用toFixed(2)四舍五入值。

使用

1
$('#txtsum').val(unitratesum.toFixed(2));

而不是

1
$('#txtsum').val(unitratesum);


您可以使用以下方法四舍五入数字:

1
Math.round(unitratesum * 100) / 100

工作演示