Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
694 views
in Technique[技术] by (71.8m points)

objective c - parsing NSString to Double

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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];

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.9k users

...