IAR里面编写的程序,要使用int函数把一个实型变量的小数部分截去,只保留整数部分, 可是只要用到取整函数的语都发生了Pe029错误,是我用的方法不对还是需要包含哪个库文件?如果xxx.xx是一个
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 16:08:21
IAR里面编写的程序,要使用int函数把一个实型变量的小数部分截去,只保留整数部分, 可是只要用到取整函数的语都发生了Pe029错误,是我用的方法不对还是需要包含哪个库文件?如果xxx.xx是一个
IAR里面编写的程序,要使用int函数把一个实型变量的小数部分截去,只保留整数部分, 可是只要用到取整函数的语都发生了Pe029错误,是我用的方法不对还是需要包含哪个库文件?
如果xxx.xx是一个实数,现在我要取得它十位上的数字,不能用这个取整函数的话怎么办?
谢谢.
void save_R(float j)
{
display_R[5]=11;
if ( int(j)/100==0 ) display_R[4]=11;
else display_R[4] = int(j)/100;
if ((int(j)/100==0) && ((int(j)/10-int(j)/100*10)==0)) display_R[3]=11;
else display_R[3]=int(j)/10-int(j)/100*10);
display_R[2]=int(j)-int(j)/10*10;
display_R[1]=int((j-int(j))*10);
display_R[0]=int((j*10-int(j*10))*10);
}
这段子程序有什么问题?IAR环境,MSP430F149,display_R是一个字符型数组,下标0~5
IAR里面编写的程序,要使用int函数把一个实型变量的小数部分截去,只保留整数部分, 可是只要用到取整函数的语都发生了Pe029错误,是我用的方法不对还是需要包含哪个库文件?如果xxx.xx是一个
强制转换错了,不应该是int(j),(int)j这才是表示把j强制转换成int 型
void save_R(float j)
{
int display_R[6];
display_R[5]=11;
if ( (int)j/100==0 ) display_R[4]=11;
else display_R[4] = (int)j/100;
if (((int)j/100==0) && (((int)j/10-(int)j/100*10)==0)) display_R[3]=11;
else display_R[3]=(int)j/10-(int)j/100*10;
display_R[2]=(int)j-(int)j/10*10;
display_R[1]=(int)((j-(int)j)*10);
display_R[0]=(int)((j*10-(int)(j*10))*10);
}