ios - van - ¿Cuál es la diferencia entre flotar y doble?
porque los astronautas van al espacio (1)
Cuando ejecuto el siguiente código,
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");
}
La respuesta es como seguir.
2013-04-19 17:07:29.284 float[2991:907] OK Float
2013-04-19 17:07:29.287 float[2991:907] Over value
¿Por qué el valor flotante cambió a 10000000.00 en lugar de 10000000.01?
float
es de 32 bits, mientras que el double
es de 64 bits. Un flotador tiene menos dígitos significativos que el doble.
Un valor float
no almacena lo suficiente para contener los 10 dígitos de su 10000000.01
.
También vea Diferencia entre flotar y doble para más detalles. Eso es sobre C / C ++ pero también se aplica a Objective-C.