round处理正数的时候没有什么问题,但是在处理负数的时候结果跟想要的不太一样。
比如-3.5,希望得到的结果是-4,可是结果却为-3.
在网上找原因的时候发现的处理办法如下:
function myRound(number, pricision) {
var _sign = (number < 0) ? -1 : 1;
var _pow = Math.pow(10, pricision);
return Math.round((number * _sign) * _pow) / _pow * _sign;};