我正在处理大数字,我现在正在像这样格式化
{{total | number:'1.0-0'}}
Run Code Online (Sandbox Code Playgroud)
结果是 45,986,592。我需要将数字格式化为只有数百万,然后只有一位数字,所以45.9
我怎样才能实现这个目标?
如果您想重用此逻辑,您可以构建自定义管道。
正如菲尔建议的,你可以将它除以 1,000,000
import { Pipe, PipeTransform } from '@angular/core';
import { DecimalPipe } from '@angular/common';
@Pipe({
name: 'million'
})
export class MillionPipe implements PipeTransform {
constructor(private decimalPipe: DecimalPipe) {
}
transform(value: any, digits?: any): any {
return this.decimalPipe.transform(value/1000000, digits)
}
}
Run Code Online (Sandbox Code Playgroud)
确保您在模块提供程序中注册了十进制管道,以便可以注入它。
工作演示:
https://stackblitz.com/edit/angular-aa16so?file=app%2Fmillion.pipe.ts