import { Pipe, PipeTransform } from '@angular/core'; /** * 价格金额千分位格式化 * * @export * @class NaPricePipe * @implements {PipeTransform} */ @Pipe({ name: 'NaPrice' }) export class NaPricePipe implements PipeTransform { /** * 金额格式化 * * @param {*} value * @param {number} [digits=2] // 小数点后保留几位数 * @param {boolean} [zeroPadding=true] // 小数点后位数不够是否补零? * @returns {*} * @memberof PricePipe */ transform(value: any, digits: number = 2, zeroPadding: boolean = true): any { if (!value) { return 0; } const parts = value.toString().split('.'); parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); let res = parts[0]; if (digits <= 0) { return parts[0]; } if (parts.length > 1) { res += '.'; const decimalPoint = parts[1]; for (let i = 0; i < digits; i++) { if (i < decimalPoint.length) { res += decimalPoint[i]; } else { if (zeroPadding) { res += '0'; } } } } else { if (zeroPadding) { res += '.'; for (let j = 0; j < digits; j++) { res += '0'; } } } return res; } }