objective-c math integer division

objective c - La división con el resultado esperado entre 1 y 0 siempre da 0



objective-c math (1)

Posible duplicado:
¿Cuál es el comportamiento de la división de enteros en C?

Cuando hago un cálculo de división con una respuesta que se supone que está entre 1 y 0, siempre devuelve 0.

Prueba esto:

float a = 1; float b = 2; float c = a / b; //variable divide by variable gives 0.5 as it should float d = 1 / 2; //number divide by number gives 0 float e = 4 / 2; NSLog(@"%f %f %f %f %f", a,b,c, d, e);

Lo obtengo de la consola:

2013-01-17 14: 24: 17.512 MyProject [1798: c07] 1.000000 2.000000 0.500000 0.000000 0.500000

No tengo idea de lo que está pasando.


Estás dividiendo un entero con un entero. El resultado será un número entero, el resto se omite:

1 / 2 = 0 The remainder (0.5) is omitted.

Solo después de terminar la división, su resultado pasa a su variable float d .

EDITAR: Correcto, olvidé sugerir una solución: asegúrese de que al menos uno de sus operandos sea flotante.

1.0 / 2 = 0.5

1 / 2.0 = 0.5