(1) 浮点型与整型
● 将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。
将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。
(1)整数相除得到小数需强制转换类型
#include <stdio.h>
int main()
{
int a=1,b=2;
double ans1=a/b;
double ans2=(double)a/b;
printf("ans1=%.2lf\n",ans1);//0.00
printf("ans2(convert1)=%.2lf\n",ans2);//0.50
printf("ans2(convert2)=%d\n",ans2);//0
return 0;
}
(2)取整强制转换类型
#include <stdio.h>
int main()
{
double a=10.1;
double b=10.9;
printf("%d\n%d",(int)a,(int)b);
return 0;
}
(3)四舍五入
#include <stdio.h>
int main()
{
double n1=0.4,n2=0.5;
n1=(int)(n1+0.5);
n2=(int)(n2+0.5);
printf("%.1lf,%.1lf",n1,n2);
return 0;
}
(4)保留小数防止自动四舍五入
#include <stdio.h>
int main()
{
double n=21.195;
n*=100;//2119.5
n=(int)n;//2119
n=n/100;//21.19
printf("%.2f\n",n);
return 0;
}