¿Cómo es que CGFloat está formando dígitos significativos?

Posible duplicado:
¿Error de adición de CGFloat?

Tengo un CGPoint (que es solo una estructura alnetworkingedor de dos CGFloats). ¿Alguien me puede explicar cómo estas dos líneas de código:

player.position = CGPointMake(player.position.x + 12.8f, player.position.y + 12.8f); NSLog(@"%f,%f", player.position.x, player.position.y); 

están generando este resultado:

 828.799988,236.800003 841.599976,249.600006 854.399963,262.399994 867.199951,275.199982 879.999939,287.999969 892.799927,300.799957 905.599915,313.599945 

Los valores iniciales para el punto son (816, 224);

Estás tratando con los valores flotantes aquí. Eso significa que habrá un error de ese margen. Si desea networkingondear a cierto número de decimales, use el siguiente código:

 NSString *value = [NSString stringWithFormat:@"%.1f", theFloat]; 

El código anterior networkingondea a 1 decimal, que es lo que necesita.

CGFloat es un número de coma flotante IEEE 754 de precisión simple o doble, que adolece de problemas conocidos de precisión . Lo que estás viendo es un efecto de eso.