2012-02-20 16 views
5

Duplicar posible:
C programming divisionObjetivo c int para el cálculo doble

Estoy tratando de calcular el periodo de cambios acelerómetro utilizando una frecuencia introducida por el usuario.

este es mi código:

double interval = 1/Freq; 

intervalo de tiempo =

Frec es un entero establecido por el usuario.

El problema que tengo es digamos que configuro Freq a 2Hz, por lo que el intervalo debe ser de 0,5, pero el intervalo es 0.0000000 ¿por qué es esto? ¿Puedo hacer algo para cambiarlo sin cambiar Freq a un doble?

+0

y muchos otros ... – JeremyP

+1

por qué no declaran un doble temporal que usas para el cálculo, dejando 'Freq' an int, haciendo' 1.0/tmpFreq'? –

Respuesta

5

Está utilizando la división de enteros (ambos 1 y Freq son enteros). Entonces el resultado será un número entero, y más exactamente 0 en este caso.

Usted puede hacer algo como esto:

double interval = 1.0/Freq; 

O

double interval = 1/(double)Freq; 
0

hacerlo de esta manera,

double interval = 1.0/Freq;