NSNumberFormatter currency symbol

currency-formatting, ios, nsnumberformatter

Solution

I just tested your code. If you run the log statements right after defining the number formatter the way you did, the output is

@"EUR"
@"€"
@"EUR"

Note that international currency symbol and currency symbol seem to depend on the locale set in your system. But you can easily change the locale for the formatter like this:

numberFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"];

It would probably be best to not set the `currencySymbol` at all. Then when the locale is, say, Thailand (`@"th_TH"`), you get

numberFormatter.internationalCurrencySymbol   "THB"
numberFormatter.currencySymbol                "฿"
numberFormatter.currencyCode                  "THB"

Problem

My application is allowing user to select various currencies for spendings tracking. I have a label which displays the amount with currecy symbol. I'm using `NSNumberFormatter` with `kCFNumberFormatterCurrencyStyle` to format the amount string and display it in the label; ``` numberFormatter = [[NSNumberFormatter alloc] init]; numberFormatter.numberStyle = kCFNumberFormatterCurrencyStyle; numberFormatter.currencyCode = @"EUR"; ``` My goal is to display the currency symbol with different color, so i'm using NSAttributedString, trying to find symbols' range and set different attributes to it. The problem is that the formatter return wrong symbol when I initilizing the attributed string: ``` MLOG(@"internationalCurrencySymbol %@", numberFormatter.internationalCurrencySymbol); MLOG(@"currencySymbol %@", numberFormatter.currencySymbol); MLOG(@"currencyCode %@", numberFormatter.currencyCode); //logs: //USD //$ //EUR ``` but when the label is displayed on the screen I see correct Euro currency symbol: `€` Does anybody know how can get the currency symbol for given currency code?

Original source