2011-02-18 60 views
8

我有一个iPhone应用程序,我想显示一个价格。所以我用几行代码:iPhone - > NSNumberFormatter - 没有货币代码的价格

NSNumberFormatter *price = [[NSNumberFormatter alloc] init]; 
[price setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[price setCurrencyCode:@"USD"]; 

我要的只是价格,格式化为currencyCode但对我来说没有USD。 因此,而不是30,00 $,我想只有30,00没有$

我该怎么做?

最好的问候,蒂姆。

回答

19

你想摆脱的是货币符号。

[price setCurrencySymbol:@""]; 
+0

您还应该能够使用以下方式处理国际货币符号:[price setInternationalCurrencySymbol:@“”]; – SomeRandomGuy 2011-02-21 04:32:23

3

可以使用setCurrencySymbol到应该做的伎俩一个空字符串:

[price setCurrencySymbol:@""]; 

请记住,这只是设置本地货币代码,它可能无法以外币工作。

+0

但是会使用哪种currrency样式呢?因为有些国家会写'.`而不是``,`。 – Tim 2011-02-19 22:16:20

1

这里有一个办法做到这一点,同时保持正确的区域设置格式化符号:

_fmt.positiveFormat = [_fmt.positiveFormat 
    stringByReplacingOccurrencesOfString:@"¤" withString:@""]; 
_fmt.negativeFormat = [_fmt.negativeFormat 
    stringByReplacingOccurrencesOfString:@"¤" withString:@""]; 

的¤字符的货币格式货币符号使用。如果您按照某些其他答案中的建议更换货币符号,则格式化程序会为该号码执行美国标准格式(AFAIK - 在iOS 4和美国5中进行测试)。设置格式化程序的区域设置后,您需要执行此替换。尝试使用没有便士的货币代码HUF。