gpt4 book ai didi

javascript - CAD 货币的 NumberFormat 不正确

转载 作者:行者123 更新时间:2023-11-30 13:59:27 24 4
gpt4 key购买 nike

我正在使用 Intl.NumberFormat,当我将货币设置为 CAD 并使用英语语言环境时,我得到了 CA$5.00。我以为这些符号是 $ 或 Can$ 或 C$ 或 CAD 我只是扔了一个简单的代码笔 https://codepen.io/jrock2004/pen/MMKqQq?editors=1010

const price = 5,
locale = 'en-US',
currency = 'CAD';

const formatter = new Intl.NumberFormat (locale, {
style: 'currency',
currency: currency,
});

const formattedPrice = formatter.format (price);

我是在做错什么,还是什么都没做错?谢谢

最佳答案

Javascript 引擎 V8 使用 ICU 进行货币(和其他语言环境)格式化。而 ICU 使用 CLDR。在 cldr 中,我们有一个定义的替代名称列表 here .因此,当我们将区域设置设置为 US(en_US) 并且我们想要美元时,符号为 $。但是对于相同的语言环境,我们可以获得不同的美元,因此为了区分它,CDLR 返回不同的符号。如果您将语言环境设置为 en_CA 并将货币设置为 CAD 那么我们会得到符号 $ 因为加拿大人将加元称为美元(不是惊喜 :) ) 对于 locale = 'en-CA', currency = 'USD' 我们将获得 1.00 美元。

CLDR 中有多种替代美元符号(AUD - A$、BRL - R$ 等)。

此外,如果我们检查 Intl.NumberFormat 的文档currencyDisplay 选项可以是 symbolcodename。如果您通过了 code,您将获得 1.00 加元,如果您通过了 symbol,您将获得 1.00 加元

TLDR; Js 使用 ICU,它使用 CDLR 为您的案例返回 CA$

关于javascript - CAD 货币的 NumberFormat 不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56611301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com