vencer van que puede porque por para niños microgravedad luna los gravedad fuerza flotando flotan espacio avión avion astronautas ios objective-c

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.