第2个回答 2020-02-17
void
table(long
degree)
这个
函数定义写错了,该函数的参数类型为长整型,此时,如果传入的参数实际值为浮点数,则浮点数会先被强制转换成长整型(隐性转换,默认的做法是去掉小数点后的数),得出的结果才传入形参(degree)。
可以把该函数改成如下形式:
//生成对应的数组,以用于led显示
void
table(float
degree)
{uchar
i;
ulong
num;
if(degree>=0){led[7]=0;degree=degree*100;num=degree;}
if(degree<0){led[7]=10;degree=degree*(-100);num=degree;}
for(i=0;i<prec;i++)
{led[i]=num%10;
num=num/10;
}
}