【问题标题】:Javascript/Jquery Incorrect sum calculation [duplicate]Javascript / Jquery不正确的总和计算[重复]
【发布时间】:2014-08-28 17:21:11
【问题描述】:

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

FIDDLE

输入值: 234.32 和 32.34

结果: 266.65999999999997

预期结果: 266.66

代码:

<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);
        }

【问题讨论】:

标签: javascript jquery html asp.net


【解决方案1】:

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

Live Demo

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

toFixed() 方法使用定点表示法格式化数字。

【讨论】:

    【解决方案2】:

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

    Math.round(unitratesum * 100) / 100
    

    Working Demo

    【讨论】:

      【解决方案3】:

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

      使用

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

      而不是

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

      【讨论】:

        猜你喜欢
        • 2018-08-27
        • 2021-10-22
        • 1970-01-01
        • 2021-09-12
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 2016-01-01
        相关资源
        最近更新 更多