问答详情
源自:2-8 自动类型转换

这道题为什么float 跟double 的输出都是97.000000,float不是4个字节吗输出不是应该是97.0000吗?求解

#include <stdio.h>

int main()

{

    char c = 'a';

    int n = c;      //将c赋值给n

    float f = c;    //将c赋值给f

    double d = c;    //将c赋值给d

    printf("%d\n",n);

    printf("%f\n",f);

    printf("%lf\n",d);

    return 0;    

}


提问者:慕粉1470407156 2016-11-20 23:13

个回答

  • 慕粉1470407156
    2016-11-21 00:30:35

    我找到答案了,因为C语言默认输出小数位数都取6位,但是小数保留10位就不一样了,double的精度更高

  • HUHAYANG
    2016-11-21 00:05:16

     printf("%f\n",f);这里%f的意思是6位小数:http://img.mukewang.com/5831c9b50001e2ad04880099.jpg

  • qq_鸿影_0
    2016-11-20 23:52:44

    #include <stdio.h>

    int main()

    {

        char c = 'a';

        int n = c;         //将c赋值给n

        float f = n;      //将c赋值给f

        double d = f ;    //将c赋值给d

        printf("%d\n",n);

        printf("%f\n",f);

        printf("%lf\n",d);

        return 0;    

    }