黑马程序员技术交流社区
标题:
%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