货币数字格式化
货币数字格式化
我试图将从我的API获取的金额格式化为特定于区域的格式。
在控制台中:
Intl.NumberFormat('en-IN').format(450000) // "4,50,000"
在Angular 2组件模板中:
{{ Intl.NumberFormat('en-IN').format(450000) }} // 无法读取未定义的属性 'NumberFormat' {{ 450000 | currency:'INR':true }} // ₹450,000.00
有没有一种方法可以在不明确指定分隔符的情况下获得₹4,50,000.00
(并能够更改区域字符串'en-IN'
为'en-US'
以进行更新)。
在上述代码中,出现了(Currency number Format)问题。问题的原因是在模板中使用了Angular的currency pipe来格式化数字,但是在模板中未正确引用变量。
解决方法是将变量正确引用,并使用currency pipe来格式化数字。具体操作是在模板中使用{{myamount | currency:'USD':true}}
来引用变量并应用currency pipe。
此外,还可以设置默认的语言环境(culture),以确保正确的货币格式化。关于如何设置默认的语言环境,可以参考How to set locale in DatePipe in Angular2?。
在i18n的cookbook中,还可以找到更多关于国际化以及在运行时如何更改语言环境的信息。具体操作是通过在代码中设置locale id,然后通过SystemJS来加载相应的插件和启动应用。
以上是关于(Currency number Format)问题的原因和解决方法的整理。更多关于currency pipe的信息可以参考https://angular.io/docs/ts/latest/api/common/index/CurrencyPipe-pipe.html,更多关于i18n的信息可以参考https://angular.io/docs/ts/latest/cookbook/i18n.html#!#merge-with-the-jit-compiler。