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