【问题标题】:How to get NSNumberFormatter currency style from ISOCurrencyCodes?如何从 ISOCurrencyCodes 获取 NSNumberFormatter 货币样式?
【发布时间】:2013-11-04 17:42:00
【问题描述】:

如果我有 EUR 或 USD(都是 ISO 货币代码),我怎样才能让我的 NSNumberFormatter 正确地格式化我这样的字符串?

对于欧元代码:10.000,00 € 对于美元代码:$10,000.00

我可以通过设置 localeIdentifier 来做到这一点。但我真的需要从 ISO 货币代码中获取它。这可能吗?

[numberFormatter stringFromNumber: [_property price]];

谢谢!

【问题讨论】:

    标签: ios objective-c nsnumberformatter nslocale


    【解决方案1】:

    使用NSNumberFormattersetCurrencyCode:方法。

    [numberFormatter setCurrencyCode:@"EUR"];
    

    [numberFormatter setCurrencyCode:@"USD"];
    

    请记住,即使将使用所需的货币符号,生成的货币值字符串仍将根据用户的区域设置进行格式化。

    【讨论】:

    • 这实际上就是我想要做的。获取不是基于用户区域设置的字符串,而是从货币代码正确格式化的字符串。
    • 但这没有任何意义。例如,来自许多不同地区的人们使用欧元。有些人想看1 000.00 €,有些人想看1.000,00 €,有些人想看€1,000.00,等等。给定的货币代码没有单一的“正确”格式。
    • 欧元格式不会因您所在的位置而改变。不管你是在西班牙、葡萄牙还是法国。这将与 Web 服务集成,并且无论用户的位置如何,我都需要以特定货币显示。我可以用它的货币给它一个国家,但感觉就像一个锤子解决方案。 :(
    • 你别无选择。甚至 USD 也用于多个语言环境。我个人不同意你的评价。我住在美国。我想将美元视为$10,000.00。我还希望看到欧元为€10,000.00。我不想将其视为10.000,00 €。这让美国人感到困惑,因为我们使用相反的分组和小数符号。祝你一切顺利。
    • 为此寻找解决方案,特别是因为我所在的国家/地区对此有特定的法律(这里的法律是巴西雷亚尔的格式始终为 10.000,00 雷亚尔,而不是 10,000.00 雷亚尔或任何变体有空格、不同的分组等等)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多