我使用的是Angular(4)十进制管道,但是点显示的数字超过4位,但是有4位的点却没有显示。
示例:
DeleteConfirmed
14314,23123返回14.314,23
但是
7157,11123返回7157,11 而不是7.157,11
有什么方法可以在不制作自定义管道的情况下进行修复?
答案 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
并使用硬编码的货币代码。