ChadK
ChadK

Reputation: 383

NSNumberFormatter only rounds to 3 decimal places

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

Answers (2)

Nathan Kinsinger
Nathan Kinsinger

Reputation: 25041

Try -setMaximumFractionDigits: and -setMinimumFractionDigits:

These configure the number of digits after the decimal separator.

Upvotes: 77

smorgan
smorgan

Reputation: 21579

Try [formatter setFormat:@"0.00000"]; instead of setRoundingIncrement:.

Upvotes: 2

Related Questions