Detect if NSString is a floating point

I am trying to do dectect if NSString is a floating point number, for example: @ "- 73.041382"

But when I try using this method, I get the wrong result:

-(bool) isNumeric:(NSString*) checkText{ NSNumberFormatter* numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; NSNumber* number = [numberFormatter numberFromString:checkText]; if (number != nil) { return true; } return false; 

}

Does anyone have an idea !?

thanks

+6
source share
2 answers
 -(bool) isNumeric:(NSString*) checkText{ return [[NSScanner scannerWithString:checkText] scanFloat:NULL]; } 

I'm not currently on a Mac, so I can't check it, hope this helps

+6
source

I found the answer:

 -(bool) isNumeric:(NSString*) checkText{ NSNumberFormatter* numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; //Set the locale to US [numberFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; //Set the number style to Scientific [numberFormatter setNumberStyle:NSNumberFormatterScientificStyle]; NSNumber* number = [numberFormatter numberFromString:checkText]; if (number != nil) { return true; } return false; } 

Thanks!

+10
source

Source: https://habr.com/ru/post/895629/


All Articles