cocoa - 在可以轻松更改区域格式的设备上保留 Cocoa 中的货币格式

标签 cocoa cocoa-touch currency

我将我的货币值存储在 NSDecimalNumbers 中(正如本论坛上多个其他线程中所建议的那样),并使用 NSNumberFormatter 正确显示它们并处理文本输入。都好!然而,当我将iPhone首选项常规设置下的区域格式更改为美国以外的某个地方(例如德国),然后查看我的应用程序时,我的所有数字都从美元更改为欧元。因此,最初输入的金额“$100.00”现在显示为“100,00 €”。

这很糟糕。因为,可悲的是,美元的值(value)不再与欧元相同 - 甚至没有接近:-(但是,我离题了......最终,我不是在寻找转换。我只是想在它最初创建时使用的货币。

Cocoa 采取什么方式来确保用户在全局旅行时这些数字的格式正确?我不想将我的应用程序的实用性限制为单一货币......

最佳答案

输入值时,您可以获得当前系统 ISO 4217 货币代码并将其与数字一起存储(它只是一个字符串):

NSString* currencyCode = [[[[NSNumberFormatter alloc] init] autorelease] currencyCode];

显示数据时,在 NSNumberFormatter 上设置此货币代码:

// NSNumberFormatter* formatter = [[[[NSNumberFormatter alloc] init] autorelease] setCurrencyCode:currencyCode];

编辑代码中的拼写错误:

NSNumberFormatter* formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setCurrencyCode:currencyCode];

关于cocoa - 在可以轻松更改区域格式的设备上保留 Cocoa 中的货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1062369/

相关文章:

ios - 防止在 iOS 上的动画期间从左上角弹出 View

ios - NSNumberFormatter stringFromNumber:不返回货币符号

macos - 不使用 Cocoa 创建 OS X 窗口

ios - 我可以将自定义 Google map 导入 iOS MapKit 吗?

objective-c - NSImageView setImage 不会设置图像

iphone - 如何在 iPad 上将 View 置于分组的 UITableViewCell 中?

java - 如何让 NumberFormat 使用货币但带有小数美分/便士?

Java Money - 特定日期的货币兑换率

objective-c - Cocoa 多值 bool 绑定(bind),使用逻辑 OR

objective-c - 将一个 NSMutableArray 连接到另一个 NSMutableArray 的末尾