Creo que me estoy volviendo loco. "contador" e "intervalo" son ambos dobles. Esto está sucediendo en el acelerómetro: didAccelerate en un intervalo de (.01). "contador" debería eventualmente incrementarse a "intervalo". Por alguna razón, no puedo hacer que este "si" suene verdadero.iphone/Objetivo C - Comparando los dobles no funcionan
¿Estoy pasando por alto algo?
double interval = .5;
if(counter == interval){ //should eventually be .50000 == .50000
NSLog(@"Hit!");
[self playSound];
counter = 0;
}else{
counter += .01;
}
NSLog(@"%f, %f, %d",counter,interval,(counter == interval));
posible duplicado de [Problema con flotación en Objective-c \ [SOLUCIONADO]] (http://stackoverflow.com/questions/1193554/trouble-with-float-in-objective-c-solved) – Seth
Sí, resulta que para ser solo eso. Aunque parece ser el problema inverso, utilicé el tipo de flotador y funcionó. Gracias Seth – azeven
No debe confiar en flotador/doble. Usar float puede resolver este, pero se romperá en otra situación. Intenta descubrir mejores soluciones. Usar> = en vez de == puede resolver en muchos casos. – taskinoor