Reputation: 221
I need to clear trailing zeros on floats without rounding? I need to only display relevant decimal places.
For example, if I have 0.5, I need it to show 0.5, not 0.500000. If I have 2.58328, I want to display 2.58328. If I have 3, I want to display 3, not 3.0000000. Basically, I need the amount of decimal places to change.
Upvotes: 17
Views: 7169
Reputation: 367
Use the following:
NSString* floatString = [NSString stringWithFormat:@"%g", myFloat];
Upvotes: 30
Reputation: 9944
NSNumberFormatter
is the way to go:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.maximumFractionDigits = 20;
NSString *result = [formatter stringFromNumber:@1.20];
NSLog(@"%@", result);
result = [formatter stringFromNumber:@0.00031];
NSLog(@"%@", result);
This will print:
1.2
0.00031
Upvotes: 27