货币数字格式化

9 浏览
0 Comments

货币数字格式化

我试图将从我的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'以进行更新)。

0
0 Comments

货币数字格式问题的出现原因是需要在网页模板中以常见的方式分隔金额。为了解决这个问题,可以按照以下步骤进行操作:

1. 在HTML模板中使用以下代码:

{{ separateAmount(450000)}}

2. 在你的`.ts`文件中创建一个函数:

separateAmount(Number){
   return Intl.NumberFormat('en-IN').format(Number)
}

这样,你就可以在HTML模板中调用`separateAmount`函数来实现以常见方式分隔金额的功能。

0
0 Comments

在上述代码中,出现了(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

0