如何在javascript中舍入和总结小数?

时间:2014-07-09 11:45:21

标签: javascript jquery

在我的网站上,我有一个这样的表格:

<select id="payments" multiple="multiple">
  <option data-amount="23.1" value="1">Invoice 1</option>
  <option data-amount="25.3" value="2">Invoice 2</option>
  <option data-amount="50.0" value="3">Invoice 3</option>
</select>

还有一点Javascript:

$(function() {

    // Sum up and insert open_amount into 'amount' field depending on what invoice numbers are selected
    $("#payments").change(function() {
        var sum = 0;
        $('#payments :selected').each(function() {
            sum += Number($(this).data("amount"));
        });
        $("#payment_amount").val(sum);
    });

});

问题在于我有时会得到奇怪的数字,例如48.400000000000006,其中我实际上想要带有两位小数的舍入结果。

如何正确总结所有选定的金额?

4 个答案:

答案 0 :(得分:1)

使用.toFixed(n)格式化小数值。

 $("#payment_amount").val(sum.toFixed(2));

答案 1 :(得分:1)

使用.toFixed(2)两位小数

$("#payment_amount").val(sum.toFixed(2));

答案 2 :(得分:1)

使用parseFloat()将其转换为浮动,然后添加它。

sum = sum + parseFloat($(this).data("amount"));

然后使用.toFixed(2)

将其设为2个小数点
$("#payment_amount").val(sum.toFixed(2));

答案 3 :(得分:0)

它可能很疯狂,但它会起作用:

parseFloat(48.400000000000006.toLocaleString())