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.
号
您可以使用
使用
1 | $('#txtsum').val(unitratesum.toFixed(2)); |
而不是
1 | $('#txtsum').val(unitratesum); |
。
您可以使用以下方法四舍五入数字:
1 | Math.round(unitratesum * 100) / 100 |
工作演示