黑马程序员技术交流社区

标题: %f输出精度问题 [打印本页]

作者: M.W    时间: 2016-7-4 11:29
标题: %f输出精度问题
%f输出精度问题
        float f1 = 3.1415926f;
        printf("f1 = %f\n",f1);-->3.1415923//默认输出小数点后6位
        printf("f1=%.7f\n",f1);-->3.1415925//注意,%f打印出来后,精度小数点后6位,有效数字是7位所以这边的5就是无效数字。
        所以使用floalt是打不出小数点后的第七位的。也就是有效数字后的数字是无效的
        float a = 1111.111111;
        foat b = 2222.22222;
        printf("a + b= %f\n", a+b); -->有效位数之后的数字(7位)都是无效的。

解决方案
        要打印更大精度的就只有使用double类型
        double默认的是精度小数点后7位,有效数字是15位。
        dobule d1 = 3.1415926;
printf("d1 = %.7f\n",d1);
作者: jilaiyuan    时间: 2016-7-4 22:51
学习了!复习了下这个问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2