toFixed精度问题重写
Number.prototype.toFixed = function (length) {
var s = this + '';
var len = length || 0;
var result = s;
var arr = s.split('.');
//整数
if (arr.length < 2) {
if (len > 0) {
result += '.';
for (var i = 1; i <= len; i++) {
result += '0';
}
}
return result;
}
//小数
var first = arr[0];
var second = arr[1];
//小数点位数等于length
if (second.length == len) {
return result;
}
//小数点位数小于length
if (second.length < len) {
for (var k = 1; k <= len - second.length; k++) {
result += '0';
}
return result;
}
//小数点位数大于length
result = first + second.substr(0, len + 1);
var last = Math.floor((result * 1 + 5) / 10);
result = (last / Math.pow(10, len)).toFixed(len);
return result;
};