29

Is their a built-in way of formatting string as $ price, e.g. 12345.45 converted to $12,345.45?

Michał Powaga
  • 22,561
  • 8
  • 51
  • 62
Mustafa
  • 20,504
  • 42
  • 146
  • 209

4 Answers4

70

Assuming you are using Cocoa (or just Foundation), you can use NSNumberFormatter and set its style to currency:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
... = [formatter stringFromNumber:number];

By default it uses the locale of your system, but you can change that and lots of other properties, see the NSNumberFormatter API docs.

Rhult
  • 1,646
  • 15
  • 10
5

Assuming the price is held in a float, you probably want +localizedStringWithFormat:.

NSString *priceString = [NSString localizedStringWithFormat:@"$ %'.2f",price];

Hmmm... Apple says they follow the IEEE standard for printf, so it should accept the ' flag, but it doesn't work on Tiger. NSNumberFormatter it is.

outis
  • 75,655
  • 22
  • 151
  • 221
3

You need to get rid of the ' character

So, just have this:

NSString *priceString = [NSString localizedStringWithFormat:@"$ %.2f", price];
n00begon
  • 3,503
  • 3
  • 29
  • 42
0
NSString *formatedNumbers = [NSNumberFormatter localizedStringFromNumber:myNumber numberStyle:NSNumberFormatterCurrencyStyle];
Ulle Tad
  • 345
  • 1
  • 4
  • 15