/**
* 重写js native toFixed 方法
* @param d
* @returns { string | number }
*/
export function toFixed(d) {
let s = this + ''
if (!d) d = 0
d = parseInt(d)
if (s.indexOf('.') == -1) s += '.'
s += new Array(d + 1).join('0')
if (new RegExp('^(-|\\+)?(\\d+(\\.\\d{0,' + (d + 1) + '})?)\\d*$').test(s)) {
s = '0' + RegExp.$2
let pm = RegExp.$1
let a = RegExp.$3.length
let b = true
if (a == d + 2) {
a = s.match(/\d/g)
if ((pm !== '-' && parseInt(a[a.length - 1]) > 4) || (pm === '-' && parseInt(a[a.length - 1]) > 5)) {
for (var i = a.length - 2; i >= 0; i--) {
a[i] = parseInt(a[i]) + 1
if (a[i] == 10) {
a[i] = 0
b = i != 1
} else break
}
}
s = a.join('').replace(new RegExp('(\\d+)(\\d{' + d + '})\\d$'), '$1.$2')
}
if (b) s = s.substr(1)
return (pm + s).replace(/\.$/, '')
}
return this + ''
}