Reputation: 77
so I want to convert NSString
to double. I found the following example:
NSString * s = @"1.5e5";
NSLog(@"%lf", [s doubleValue]);
It works but if doubleValue
cannot convert the string to double it simply returns 0.0 which is not what I need. I need some method that tries to convert a string representation of double to double and if indicate somehow if it can't be converted.
c# has an excellent method
double d;
boolean Double.TryParse(str, out d)
Is there any method similar to the above one in Objective C? or maybe it's better to use regex? however, i don't really know how to do that.
Upvotes: 3
Views: 3729
Reputation: 539685
You can use the NSScanner
class:
NSString *s = @"1.5e5";
NSScanner *scanner = [NSScanner scannerWithString:s];
double d;
BOOL success = [scanner scanDouble:&d];
If you want to ensure that the entire string has been scanned (no extra characters after the number), use
BOOL isAtEnd = [scanner isAtEnd];
Upvotes: 9