Sxx_27 发表于 2021-10-9 09:22:51

刚入门学C,做作业遇到了点问题不理解,求助。

#include <stdio.h>
#include <math.h>

int main()
{
      float a,b;//换成double就错了
      
      printf("请输入华氏度:");
      scanf("%f",&a);
      
      b = (a-32)*5/9;
      
      printf("转换为摄氏度:%.2f",b);
      
      return 0;
}


按照作业输入45时,loat显示的结果是7.22
当把float换成double时就显示为-17.78

请问这是为什么?double不是精度变高了而已么?

谢谢解答



wp231957 发表于 2021-10-9 09:43:07

float   对应%f
double   %lf

Sxx_27 发表于 2021-10-9 09:50:41

wp231957 发表于 2021-10-9 09:43
float   对应%f
double   %lf

哇 谢谢 不过我还有个问题请您解答下,我用double时
将第九行的 %f 换为 %lf 结果就对了,为什么第13行的不用换呢?

wp231957 发表于 2021-10-9 09:53:59

Sxx_27 发表于 2021-10-9 09:50
哇 谢谢 不过我还有个问题请您解答下,我用double时
将第九行的 %f 换为 %lf 结果就对了,为什么第13行 ...

发代码

Sxx_27 发表于 2021-10-9 09:56:49

wp231957 发表于 2021-10-9 09:53
发代码

{:10_254:}还是上面那个代码
#include <stdio.h>
#include <math.h>

int main()
{
        double a,b;
       
        printf("请输入华氏度:");
        scanf("%lf",&a);
       
        b = (a-32)*5/9;
       
        printf("转换为摄氏度:%.2f",b);
       
        return 0;
}

wp231957 发表于 2021-10-9 10:17:50

Sxx_27 发表于 2021-10-9 09:56
还是上面那个代码

还是对应上为好,保持一致

Sxx_27 发表于 2021-10-9 10:54:05

wp231957 发表于 2021-10-9 10:17
还是对应上为好,保持一致

好的 谢谢
页: [1]
查看完整版本: 刚入门学C,做作业遇到了点问题不理解,求助。