我想在我的应用程序中有一个货币输入字段,用户可以在其中包含货币符号(根据他们的区域设置),也可以不包含,如他们所愿。
我设置了一个文本字段,并将值存储在 NSDecimalNumber 中(据我所知,这是存储货币的推荐方式)。
以下代码将使我从 NSDecimalNumber 转换为格式化的货币字符串:
[NSNumberFormatter localizedStringFromNumber:currencyValue numberStyle:NSNumberFormatterCurrencyStyle]
但我找不到相反的方法。即,获取用户在我的文本字段中键入的字符串并将其(如果可能)转换为 NSDecimalNumber。请记住,货币符号可能存在(因为它来自上面的函数)或不存在(因为用户没有费心输入货币符号)。
我错过了什么?
如果我无法弄清楚这一点,我将根本不接受任何货币符号(即,只需使用下面的代码对其进行解析)。但允许货币符号似乎更好。
[NSDecimalNumber decimalNumberWithString:currencyString locale:[NSLocale currentLocale]]
我觉得我错过了一些东西。在本地化货币字符串和 NSDecimalNumber 之间来回转换的正确方法是什么?