我正在使用javascript绑定到某些复选框,并且toFixed(2)没有舍入。有什么想法为什么不四舍五入吗?例如,如果数字为,859.385则仅显示859.38而不是859.39。我也读过,toFixed可以根据您使用的浏览器而不同地进行舍入,任何人都知道解决此问题的方法,以便我的javascript计算与我的php计算匹配?var standardprice = parseFloat($('#hsprice_'+this.id.split('_')[1]).val());var price = parseFloat($('#hprice_'+this.id.split('_')[1]).val());var discount = parseFloat($('#hdiscount_'+this.id.split('_')[1]).val());var deposit = parseFloat($('#hdeposit_'+this.id.split('_')[1]).val());var currSprice = parseFloat($('#hTotalSprice').val());var currPrice = parseFloat($('#hTotalPrice').val());var currDiscount = parseFloat($('#hTotalDiscount').val());var currDeposit = parseFloat($('#hTotalDeposit').val());currSprice += standardprice;currPrice += price;currDiscount += discount;currDeposit += deposit;$('#lblTotalSprice').text('$'+addCommas(currSprice.toFixed(2)));$('#lblTotalPrice').text('$'+addCommas(currPrice.toFixed(2)));$('#lblTotalDiscount').text('$'+addCommas(currDiscount.toFixed(2)));$('#lblTotalDeposit').text('$'+addCommas(currDeposit.toFixed(2)));$('#hTotalSprice').val(currSprice.toFixed(2));$('#hTotalPrice').val(currPrice.toFixed(2));$('#hTotalDiscount').val(currDiscount.toFixed(2));$('#hTotalDeposit').val(currDeposit.toFixed(2));
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
我还没有找到toFixed10做错了的数字。可以有人吗?
由于blg和他的回答这向我指出Mozilla的toFixed10()方法。
使用这个,我想到了一个短的衬纸,它确实涵盖了这里提到的所有情况...
function toFixed( num, precision ) {
return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);
}
不负相思意
TA贡献1777条经验 获得超10个赞
我将其用作所有财务数据的最佳四舍五入函数。您可以对所有有问题的数字进行测试。Javascript允许某种程度的精度,因此我使用它来使几乎所有数字都按预期取整。
function roundTo(n, digits) {
if (digits === undefined) {
digits = 0;
}
var multiplicator = Math.pow(10, digits);
n = parseFloat((n * multiplicator).toFixed(11));
return Math.round(n) / multiplicator;
}
添加回答
举报
0/150
提交
取消