class NumberUtils { //格式化为千分位 /* * 参数说明: * money:要格式化的数字 * decimal:保留几位小数 * */ formatCurrency(money: any, decimal: number): string { decimal = decimal > 0 && decimal <= 20 ? decimal : 2; money = parseFloat((money + "").replace(/[^\d\.-]/g, "")).toFixed(decimal) + ""; var l = money .split(".")[0] .split("") .reverse(), r = money.split(".")[1]; let t: string = ""; for (let i: number = 0; i < l.length; i++) { t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? "," : ""); } return ( t .split("") .reverse() .join("") + "." + r ); } //利率*100,用来展示数据 multiplyBy100(rate: string, decimal: number): string { return this.formatCurrency(Number(rate) * 100, decimal); } //利率/100,用来向后台传数据 divideBy100(rate: string, decimal: number): string { return this.formatCurrency(Number(rate) / 100, decimal); } // 数字金额大写转换(可以处理整数,小数,负数) smalltoBIG(n: number) { var fraction = ["角", "分"]; var digit = [ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ]; var unit = [["元", "万", "亿"], ["", "拾", "佰", "仟"]]; var head = n < 0 ? "欠" : ""; n = Math.abs(n); var s = ""; for (var i = 0; i < fraction.length; i++) { s += ( digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i] ).replace(/零./, ""); } s = s || "整"; n = Math.floor(n); for (var i = 0; i < unit[0].length && n > 0; i++) { var p = ""; for (var j = 0; j < unit[1].length && n > 0; j++) { p = digit[n % 10] + unit[1][j] + p; n = Math.floor(n / 10); } s = p.replace(/(零.)*零$/, "").replace(/^$/, "零") + unit[0][i] + s; } return ( head + s .replace(/(零.)*零元/, "元") .replace(/(零.)+/g, "零") .replace(/^整$/, "零元整") ); } } let numberUtils: NumberUtils = new NumberUtils(); export default numberUtils;