初级会员

- 积分
- 153
- 金钱
- 153
- 注册时间
- 2014-9-8
- 在线时间
- 23 小时
|
10金钱
写了一个浮点型运算算法,发现k*(nuiResVal/1000)+b结果应该是带小数的,但是 temperature打印出来却是不带小数,单步仿真运行,手动自己计算k*(nuiResVal/1000)+b 结果是带小数 结果 temperature又变成了不带小数 用printf打印出来看到 temperature偶尔会带小数 程序如下 求解? float CalcTemp(uint nuiResVal)
{
float temperature;
float k,b;
CheckTem(nuiResVal);
#ifdef DEBUG
printf("Tmin:%d\r\n",nuiTempMin);
printf("Tmax:%d\r\n",nuiTempMax);
#endif
k = nuiTempTab[nuiTempMin] - nuiTempTab[nuiTempMax];
k /= (nuiTempMax- nuiTempMin);
k=k/1000;
b=nuiTempMax-k*(nuiTempTab[nuiTempMax]/1000);
temperature=k*(nuiResVal/1000)+b;
#ifdef DEBUG
printf("Tmin:%.1f\r\n",temperature);
#endif
return temperature;
}
|
|