我正在尝试使用Intl.NumberFormat更改我的货币在Angular6应用程序中的显示。它可以与USD正常工作,但是当我尝试将其用于南非兰特或阿拉伯联合酋长国迪拉姆时,我会不断得到:
RangeError:数值格式选项属性currencyDisplay的值R超出范围
我似乎找不到任何地方列出可以使用的所有有效语言环境和符号,因此想知道问题是否出在不支持这些货币的地方。
任何人都可以告知他们是否受支持,或者我可以在哪里找到要检查的有效列表。
示例代码,货币ZAR有效,但currencyDisplay失败,出现超出范围的错误:
const currencyFormat = new Intl.NumberFormat('af', {
style: 'currency',
currency: 'ZAR',
currencyDisplay: 'R',
minimumFractionDigits: 2
});
答案 0 :(得分:0)
currencyDisplay
只接受name
或symbol
new Intl.NumberFormat('af', {
style: 'currency',
currency: 'ZAR',
currencyDisplay: 'name',
minimumFractionDigits: 2
}).format(1)
// "1.00 South African rand"
new Intl.NumberFormat('af',{ 风格:“货币”, 货币:“ ZAR”, currencyDisplay:“符号”, minimumFractionDigits:2 })。format(1) \“ ZAR 1.00”
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
答案 1 :(得分:0)
很久以后,但可能会帮助其他人。这对我有用,因为它产生的值以南非使用的'R'开头。
let displayValue = new Intl.NumberFormat('en-ZA', {
style: 'currency',
currency: 'ZAR',
minimumFractionDigits: 2
}).format(this.displaySubTotal)
有关正确的语言环境-请参阅:https://www.localeplanet.com/icu/en-ZA/index.html