下面的代码,当我乘的浮动* 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