下面的代碼,當我乘的浮動* 12浮點與整數數據類型的計算問題,用C
void setup_timer_parameters(float micro_seconds)
{
//constants
calibration = 0;
//calculables
periods_needed = micro_seconds * 12 + calibration;
target_overflows = periods_needed/65536;
overflows_counter = target_overflows;
temp = periods_needed - (target_overflows * 65536);
leftover = (long)temp;
//int overflows_needed = micro_seconds % timer_period;
printf(lcd_putc, "\fPN%05f TMP%05f\nTO%05f LO%05f", periods_needed, temp, target_overflows, leftover);
}
void main(){
setup_timer_parameters(20000F);
}
出於某種原因,我的屏幕顯示我periods_needed是-518不會產生我期望的答案!爲什麼不是20000 * 12 = 240000?
沒有定義'periods_needed'或者'calibration'的類型,我們沒有任何線索。我敢打賭,'periods_needed'是某種簡短的,但你沒有提供所有的代碼。 – 2010-02-28 22:34:44
period_needed,temp,target_overflows,剩餘的類型是什麼?代碼請。 – vladr 2010-02-28 22:35:23
什麼是句號需要聲明?它是一個整數嗎?這是一個浮動嗎? – 2010-02-28 22:35:42