小白求教
#include <stdio.h>int main()
{
int zx;
float xc;
printf("请输入华氏度:");
scanf("%d",&zx);
xc = (zx - 32) * 5 / 9;
printf("转换为摄氏度是:%.2f\n",xc);
return 0;
}
为什么int算出来是7.00 float算出来就是7.22
int是整数啊,float是带小数点的 主要是一个是省去点后面的 int 计算向下取整,float 计算就是平时现实中的计算,小数点后个数通过%.?f中的?来规定 因为你声明的zx是int类型,int类型的数据进行四则运算的时候会向下取整,在执行xc=(zx - 32) * 5 / 9语句的时候,先进行右侧的四则运算,乘除运算时进行了取整,得到结果为7,然后再将结果赋值给xc,所以xc的值为7.00 。
若想得到正确的结果,可以将zx改为float,或者在进行运算的时候,让float类型的数据参与运算,那样运算结果会自动转为float,例如:xc=(zx - 32) * 5 / 9.0或者xc=(zx - 32) * 5.0 / 9等等
页:
[1]