立志学编程 发表于 2020-3-13 00:20:06

小白求教

#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

六小鸭 发表于 2020-3-13 07:58:25

int是整数啊,float是带小数点的

wangka 发表于 2020-3-13 08:30:44

主要是一个是省去点后面的

墨羽岚 发表于 2020-3-13 08:39:46

int 计算向下取整,float 计算就是平时现实中的计算,小数点后个数通过%.?f中的?来规定

sunrise085 发表于 2020-3-13 09:23:41

因为你声明的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]
查看完整版本: 小白求教