Kiedy uruchomić poniższy kod,Jaka jest różnica między zmienną a podwójną?
NSString* s= @"10000000.01";
float f = [s floatValue];
double d = [s doubleValue];
if(f > 10000000)
{
NSLog(@"Over Value");
}
else {
NSLog(@"OK Float");
}
if(d > 10000000)
{
NSLog(@"Over value");
}
else {
NSLog(@"OK Double");
}
Odpowiedź jest jak następujące.
2013-04-19 17:07:29.284 float[2991:907] OK Float
2013-04-19 17:07:29.287 float[2991:907] Over value
Dlaczego wartość zmiennoprzecinkowa została zmieniona na 10000000,00 zamiast 10000000.01?
Wypróbuj [Google] (https://www.google.com/#q=single%20precision%20vs%20double%20precision&fp=1&bav=on.2,or.r_cp.r_qf.&cad=b) i przeczytaj o różnica między 'float's (pojedyncza precyzja) i' double's (podwójna precyzja). –
SA * to * Google. Miejsce, w którym większość ludzi kończy się podczas logowania;) –