When I run the following code ,
NSString* s= @\"10000000.01\"; float f = [s floatValue]; double d = [s doubleValue]; if(f > 10000000) { NSLog(@\"Ove
float is 32-bit while double is 64-bit. A float has fewer significant digits than double.
float
double
A float value doesn't store enough to hold the 10 digits of your 10000000.01.
10000000.01
Also see Difference between float and double for more details. That is about C/C++ but it applies to Objective-C as well.