Setting up NSScanner for this is trivial, if I'm understanding the question...

double                  doubleValue;
NSScanner               *scanner = [NSScanner scannerWithString: stringToCheck];

if ([scanner scanDouble: &doubleValue])
{
        // doubleValue has your double's value.
}
else
{
        // NAN.
}

- d

On Mar 20, 2008, at 7:26 PM, Quincey Morris wrote:

On Mar 20, 2008, at 16:13, Boyd Collier wrote:

According to Apple's documents, the selector doubleValue returns 0.0 if the instance of an NSString that is the receiver "doesn’t begin with a valid text representation of a floating-point number." Is there a simple way to distinguish between the string 0.0, which shouldn't be considered illegitimate for my purposes, and the string (for example) X0.0 other than writing extra lines of code to distinguish one case from the other? I know I could use a scanner, but perhaps there's something simple that I'm overlooking.

As it happens, I ran into the integer version of this question yesterday. My pragmatic solution was to trim the string of whitespace, then test whether the first character was a digit (or a period, or a minus sign in your case, perhaps, but they may introduce localization concerns), and go ahead with the string conversion if it is. A bit hackish, but easier than setting up a NSScanner.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to