来自Wikipedia:
印度编号系统使用的分隔符与国际标准不同。它没有像国际体系中那样将数字进行三位分组,而是将最右边的三位数字组合在一起(直到数百位),然后再按两位数字进行分组。因此,一万亿将写成10,00,00,00,00,000。
toLocaleString
的JavaScript函数以正确的格式返回en-IN
语言环境。
(123456789).toLocaleString('en-IN', {
style: 'currency',
currency: 'INR',
minimumFractionDigits: 2,
maximumFractionDigits: 2
}) // ₹ 12,34,56,789.00
但是Angular的币种管道对于en-IN
语言环境没有返回相同的输出。我需要创建自定义管道吗?
{{ 123456789 | currency : 'INR' : 'symbol': '1.2-2' : 'en-IN' }}
<!-- ₹123,456,789.00 -->
答案 0 :(得分:0)
在app.module.ts
中添加以下行以启用印度数字格式。如果您要使用多个语言环境,还给出了示例。
import { registerLocaleData } from '@angular/common';
import localeIn from '@angular/common/locales/en-IN';
registerLocaleData(localeIn);
import localeAr from '@angular/common/locales/ar-EG';
registerLocaleData(localeAr);
<p>
<!-- ₹ 12,34,56,789.00 -->
{{ 123456789 | currency : 'INR' : 'symbol': '1.2-2' : 'en-IN' }}
<br/>
<!-- د.إ. 123,456,789.00 -->
{{ 123456789 | currency : 'AED' : 'symbol': '1.2-2' : 'ar-EG' }}
</p>