Reputation: 5644
I am trying to format a NSNumber containing a value of 0.305 as "30.5%".
However, my following code does not work:
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setLocale:[NSLocale currentLocale]];
How can I specify that the number should be formatted as percentage with one decimal place?
Upvotes: 5
Views: 4478
Reputation: 1286
I'm using also setMaximum
float precent = 3.5;
NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc]init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMinimumFractionDigits:1];
[numberFormatter setMaximumFractionDigits:1];
return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:precent]];
Upvotes: 0
Reputation: 2722
Edited for the actual correct answer:
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMinimumFractionDigits:1];
Upvotes: 5
Reputation: 1414
This works for me:
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMinimumFractionDigits:1];
Upvotes: 14
Reputation: 47241
Try
float percent = 0.305;
NSString *formattedPercentText = [NSString stringWithFormat:@"%.1f%%", percent * 100];
Upvotes: 4