客户打电话来说网页上有个地方计算不四舍五入了……
结果调试发现,4.25*13531.3=57508.025 ,.toFixed(2)结果竟然是57508.02
4.25*13531.42=57508.535 结果又是57508.54
我知道为什么了……老老实实的重写Number.prototype.toFixed()好了
for(i=0; i<0.1; i+=0.005)
document.write(i.toFixed(2) + ' : ' + i + '<br>');
Plain Text code
for(i=0; i<0.1; i+=0.005)
document.write(i.toFixed(2) + ' : ' + i + '<br>');
function toFixed(n) {
return (new RegExp("\\d+(\\.\\d{0,"+n+"})?")).exec(this.toString())[0] - 0;
}
Number.prototype.toFixed = toFixed;