I was under the impression that using a format specifier like %0.1f would round float values following a standard 4/5 split (i.e. 3.24 would round to 3.2 and 3.25 would round to 3.3). Yet I'm not getting results I expect. Here is my test code:
NSLog(@"%0.1f", 3.24); //Output: 3.2
NSLog(@"%0.1f", 3.25); //Output: 3.2 Expected Output: 3.3
NSLog(@"%0.1f", 3.26); //Output: 3.3
Even using NSNumberFormatter generates the same result:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setRoundingMode: NSNumberFormatterRoundHalfUp]; //Tried with and without setting this. Same results either way.
[formatter setMaximumFractionDigits:1];
NSString *numberString1 = [formatter stringFromNumber:[NSNumber numberWithFloat:3.24]];
NSString *numberString2 = [formatter stringFromNumber:[NSNumber numberWithFloat:3.25]];
NSString *numberString3 = [formatter stringFromNumber:[NSNumber numberWithFloat:3.26]];
NSLog(@"Result...%@",numberString1); //Output: 3.2
NSLog(@"Result...%@",numberString2); //Output: 3.2 Expected: 3.3
NSLog(@"Result...%@",numberString3); //Output: 3.3
Seems like basic stuff. What am I doing wrong?