Reputation: 383
I'm trying to use NSNumberFormatter
to round a number to 5 decimal places in an iPhone app, but [formatter stringFromNumber:]
always returns strings rounded to 0.001 (3 decimal places). What am I doing wrong?
formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp];
[formatter setSecondaryGroupingSize:3];
[formatter setRoundingIncrement:[NSNumber numberWithDouble:0.00001]];
Upvotes: 35
Views: 22533
Reputation: 25041
Try -setMaximumFractionDigits: and -setMinimumFractionDigits:
These configure the number of digits after the decimal separator.
Upvotes: 77
Reputation: 21579
Try [formatter setFormat:@"0.00000"]; instead of setRoundingIncrement:.
Upvotes: 2