Jquery 小数点后最多2个尾随数字

Jquery 小数点后最多2个尾随数字,jquery,checkbox,Jquery,Checkbox,以下是jQuery代码 $('#Cancelation').change(function(){ if($(this).is(':checked')){ total = parseFloat($('#TotalAmount').val()) + parseFloat($('#Cancelation').val()); } else { total = par

以下是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,在页面加载时正确显示,问题是如果选中或取消选中复选框,复选框的值,从
#TotalAmount
#TotalPrice
中添加或减去2.00,但在添加时输出类似
12.4899998
,在减去时输出类似
10.4899998

我尝试了
.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>
取消保护:2.00
总额:10.49

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

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

在进行少量研究并检查以下链接的答案后


通过添加java解决了问题,这要感谢mac提出
Math.round

<script>
    var round = Math.round;
    Math.round = function (value, decimals) {
      decimals = decimals || 0;
      return Number(round(value + 'e' + decimals) + 'e-' + decimals);
    }

    $('#Cancelation').change(function(){        
        if($(this).is(':checked')){
            total = parseFloat($('#TotalAmount').val()) + parseFloat($('#Cancelation').val());                      
        } else {
            total = parseFloat($('#TotalAmount').val()) - parseFloat($('#Cancelation').val());
        }
            $("#TotalAmount").val(Math.round(total, 2));
            $("#TotalPrice").html(Math.round(total, 2));
    });
</script>

var round=Math.round;
Math.round=函数(值,小数){
小数=小数| | 0;
返回数字(四舍五入(值+'e'+小数)+'e-'+小数);
}
$(“#取消”).change(函数(){
如果($(this).is(':checked')){
total=parseFloat($('TotalAmount').val())+parseFloat($('TotalAmount').val());
}否则{
total=parseFloat($('TotalAmount').val())-parseFloat($('TotalAmount').val());
}
$(“#TotalAmount”).val(数学四舍五入(总计,2));
$(“#TotalPrice”).html(Math.round(total,2));
});

经过一点研究,并在下面的链接中检查答案


通过添加java解决了问题,这要感谢mac提出
Math.round

<script>
    var round = Math.round;
    Math.round = function (value, decimals) {
      decimals = decimals || 0;
      return Number(round(value + 'e' + decimals) + 'e-' + decimals);
    }

    $('#Cancelation').change(function(){        
        if($(this).is(':checked')){
            total = parseFloat($('#TotalAmount').val()) + parseFloat($('#Cancelation').val());                      
        } else {
            total = parseFloat($('#TotalAmount').val()) - parseFloat($('#Cancelation').val());
        }
            $("#TotalAmount").val(Math.round(total, 2));
            $("#TotalPrice").html(Math.round(total, 2));
    });
</script>

var round=Math.round;
Math.round=函数(值,小数){
小数=小数| | 0;
返回数字(四舍五入(值+'e'+小数)+'e-'+小数);
}
$(“#取消”).change(函数(){
如果($(this).is(':checked')){
total=parseFloat($('TotalAmount').val())+parseFloat($('TotalAmount').val());
}否则{
total=parseFloat($('TotalAmount').val())-parseFloat($('TotalAmount').val());
}
$(“#TotalAmount”).val(数学四舍五入(总计,2));
$(“#TotalPrice”).html(Math.round(total,2));
});

你能发布你添加的htmlhtml代码吗?你的代码似乎有效@depperm同意你的意见它有效我在另一个网站上使用了相同的代码,在那里它有效,但我当前正在处理的页面没有正常工作,任何想法或解决方案,因为我看不到调试正确工作的代码的方法,你有没有其他影响取消的js,TotalAmount,或者TotalPrice?你能发布你添加的htmlhtml代码吗?你的代码似乎有效@depperm同意你的意见它有效我在另一个网站上使用了相同的代码,在那里它有效,但我当前正在处理的页面没有正常工作,所以,有什么想法或解决方案,因为我看不到调试正确工作的代码的方法吗?有没有其他影响取消、TotalAmount或TotalPrice的js?