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

#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; }

第二个输出不是单精度吗?为啥运行结果是97.000000

提问者:慕莱坞4462739 2017-08-03 17:57

个回答

  • qq_陌_34
    2017-08-03 18:45:21

    这里的精度指的是有效数字的位数,后面的零都是为了区别于整型的,所以默认是那么多个,


  • ICQ小乐乐
    2017-08-03 18:37:16

    #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); //97

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

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

        return 0;

    }

    单精度(float--%f)精确到小数点后第6位,双精度(double--lf)精确到小数点后15位

  • qq_万人呐喊我耀宗_0
    2017-08-03 18:37:05

    #include <stdio.h>

    int main()

    {

        char c = 'a';

        int a =97;

        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;    

    }

    %f 在前面讲解过小数的