数百万人的角管格式化

muf*_*lou 4 pipe angular

我正在处理大数字,我现在正在像这样格式化

{{total  | number:'1.0-0'}}
Run Code Online (Sandbox Code Playgroud)

结果是 45,986,592。我需要将数字格式化为只有数百万,然后只有一位数字,所以45.9

我怎样才能实现这个目标?

Rin*_*ngo 6

如果您想重用此逻辑,您可以构建自定义管道。

正如菲尔建议的,你可以将它除以 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