Javascript固定不舍入

我正在使用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));


慕斯王
浏览 518回答 3
3回答

开心每一天1111

我还没有找到toFixed10做错了的数字。可以有人吗?由于blg和他的回答这向我指出Mozilla的toFixed10()方法。使用这个,我想到了一个短的衬纸,它确实涵盖了这里提到的所有情况...function toFixed( num, precision ) {    return (+(Math.round(+(num + 'e' + precision)) + 'e' + -precision)).toFixed(precision);}

不负相思意

我将其用作所有财务数据的最佳四舍五入函数。您可以对所有有问题的数字进行测试。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;    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript