例如:
#include <stdio.h>
int main()
{ int a,b;
float c;
a=3;
b=2;
c=a/b;
printf("%f",c);//输出结果1.000000
return 0;
}
这是因为a和b的类型都是int,所以运算结果c也会转换为int型(即舍去小数),a/b = 1,之后再将取整后的数据(即整数1)转换为float类型(即1.000000)赋值给变量c,所以最后输出1.000000
订正:
#include <stdio.h>
int main()
{ int a,b;
float c;
a=3;
b=2;
c=(float)a/b;//c=a/(float)b或c=(float)a/(float)b皆可
//不可写作c=(float)(a/b);这样(float)(5/2)=2.0
printf("%.2f",c);//输出1.50
return 0;
}
备注:
1.a,b一开始也定义成float,就不用强制类型转换了。
2.如果是混合运算,比如c=a/b+32,还是将a或b进行强制类型转换,即使最先的运算结果就要精确。又若如c=3*a/b+32,可写作c=3.*a/b+32。