2012-02-20 2 views
5

Можно создать дубликат:
C programming divisionObjective с Int двойной расчет

Я пытаюсь вычислить период обновлений акселерометра с помощью пользователя, вводимой частоты.

это мой код:

double interval = 1/Freq; 

интервал = период

Freq является ИНТ задается пользователем.

Проблема, с которой я сталкиваюсь, это сказать, что я устанавливаю Freq на 2 Гц, поэтому интервал должен быть 0,5, но вместо этого интервал составляет 0,0000000. Почему это? Могу ли я сделать что-нибудь, чтобы изменить его, не меняя Freq на double?

+0

и многие другие ... – JeremyP

+1

почему бы не объявить временный двойной который вы используете для вычисления, оставляя 'Freq' int, делая' 1.0/tmpFreq'? –

ответ

5

Вы используете целочисленное деление: (оба 1 и Freq являются целыми числами). Таким образом, результат будет целым числом, а точнее 0 в этом случае.

Вы можете сделать что-то вроде этого:

double interval = 1.0/Freq; 

Или

double interval = 1/(double)Freq; 
0

сделать это таким образом,

double interval = 1.0/Freq;