角十进制管道点格式

时间:2019-12-09 13:28:41

标签: javascript angular typescript

我使用的是Angular(4)十进制管道,但是点显示的数字超过4位,但是有4位的点却没有显示。

示例:

DeleteConfirmed

14314,23123返回14.314,23

但是

7157,11123返回7157,11 而不是7.157,11

有什么方法可以在不制作自定义管道的情况下进行修复?

2 个答案:

答案 0 :(得分:4)

尝试一下:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'example'
})
export class Example implements PipeTransform {

  transform(value: number | string, locale?: string): string {
    return new Intl.NumberFormat(locale, {
      minimumFractionDigits: 2,
      maximumFractionDigits: 2
    }).format(Number(value));
  }
}

在您的html中:

 {{ amount| example}}

答案 1 :(得分:0)

您的错误可能与有效的语言环境有关。从Angular 5开始,语言环境参数已添加到十进制管道。您可以通过它并检查结果。

此外,我在Stakblitz上创建了一个简单示例,其默认语言环境为NG,版本为4.4.7-一切都按需工作,因此请尝试调试当前语言环境。

顺便说一句。对于现金演示,您可以使用CurrencyPipe代替DecimalPipe并使用硬编码的货币代码。