格式化价格时,让NSNumberFormatter拼出货币

时间:2011-08-14 13:35:37

标签: iphone ios ipad in-app-purchase

我正在我的应用中实现应用内购买。 为了获得本地化的价格,我会执行以下操作:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
  [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
  [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
  [numberFormatter setLocale:self.priceLocale];
  NSString *formattedString = [numberFormatter stringFromNumber:self.price];
  [numberFormatter release];
  return formattedString;

这很好用。但是我希望得到一个可转换为ASCII字符串的字符串。那么有没有办法让数字格式化器拼出货币。例如“0.99€”将变为“0.99欧元”或“0.99欧元”。

1 个答案:

答案 0 :(得分:0)

有一种方法可以通过替换格式化程序格式中的¤来实现:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:self.priceLocale];
NSString *currencyString = [numberFormatter internationalCurrencySymbol];
NSString *posFormat = [numberFormatter positiveFormat];
formatterFormat = [formatterFormat stringByReplacingOccurrencesOfString:@"¤" withString:currencyString];
[numberFormatter setPositiveFormat:posFormat];
NSString *formattedString = [numberFormatter stringFromNumber:self.price];
[numberFormatter release];
return formattedString;