以下是jQuery代码

    $('#Cancelation').change(function(){
        if($(this).is(':checked')){
            total = parseFloat($('#TotalAmount').val()) + parseFloat($('#Cancelation').val());
        } else {
        total = parseFloat($('#TotalAmount').val()) - parseFloat($('#Cancelation').val());
        }
        $('#TotalAmount').val(total);
        $('#TotalPrice').html(total);
    });


如果#TotalAmount的值为10.49,这在页面加载时正确显示,并且问题在于,如果选中或取消选中了复选框,则复选框的值为2.00,则从#TotalAmount#TotalPrice添加或减去,但是输出显示为12.48999998减去时加0r 10.48999998

我尝试了.toFixed(2);,但结果是相同的,是否还有其他方法可以解决此问题?

编辑:HTML代码

<label for="Cancelation"><input type="checkbox" name="Cancelation" id="Cancelation" value="2.00"> Cancellation Protection: 2.00</label>
<input type="text" name="TotalAmount" id="TotalAmount" value="10.49" />
Total Amount: <span id="TotalPrice">10.49</span>

最佳答案

您可以使用Math.round(number * 100) / 100舍入到小数点后两位。

10-07 17:26