轻轻草原 发表于 2020-6-30 16:34:08

double和float 适用性问题求大佬给个解释

#include<stdio.h>
int main(){
       
        double x,y;//为啥用double和float输出结果就不同呢。
        printf("请输入华氏度:");
        scanf("%f",&x);
        y=(x-32.0)*5.0/9.0;
        printf("转换成摄氏度是:%.2f\n",y);
        return 0;
}




实在弄不清数到底问题出在哪里 就解释呢。

qiuyouzhi 发表于 2020-6-30 16:39:40

改成这样:
#include<stdio.h>
int main(){
         
      double x,y;//为啥用double和float输出结果就不同呢。
      printf("请输入华氏度:");
      scanf("%lf",&x);
      y=(x-32.0)*5.0/9.0;
      printf("转换成摄氏度是:%.2f\n",y);
      return 0;
}
原因是scanf的输入格式不对,应该是lf,不是f.

liuzhengyuan 发表于 2020-6-30 16:41:03

因为 double 类型输入时候要用 %lf 而不是 %f

#include<stdio.h>
int main() {

    double x, y;//为啥用double和float输出结果就不同呢。
    printf("请输入华氏度:");
    scanf("%lf", &x);
    y = (x - 32.0) * 5.0 / 9.0;
    printf("转换成摄氏度是:%.2f\n", y);
    return 0;
}

轻轻草原 发表于 2020-6-30 16:52:05

qiuyouzhi 发表于 2020-6-30 16:39
改成这样:

原因是scanf的输入格式不对,应该是lf,不是f.

加l的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加l或者加ll ,难道只要这个数足够大么?

Twilight6 发表于 2020-6-30 17:09:55

轻轻草原 发表于 2020-6-30 16:52
加l的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加l或者加ll ,难道只要这个数足 ...




{:10_245:}你最佳给别人 然后去问另一个人 这样好意思吗?晕....

永恒的蓝色梦想 发表于 2020-6-30 17:10:16

轻轻草原 发表于 2020-6-30 16:52
加l的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加l或者加ll ,难道只要这个数足 ...

不是。%f 是 float,%lf 是 double,%Lf 是 long double

轻轻草原 发表于 2020-7-3 13:26:13

Twilight6 发表于 2020-6-30 17:09
你最佳给别人 然后去问另一个人 这样好意思吗?晕....

注意力不集中 搞错了,尴尬。

轻轻草原 发表于 2020-7-3 13:26:45

轻轻草原 发表于 2020-6-30 16:52
加l的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加l或者加ll ,难道只要这个数足 ...

抱歉意外意外。
页: [1]
查看完整版本: double和float 适用性问题求大佬给个解释