c语言的一道题目 为什么会四舍五入?
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/10 13:53:07
c语言的一道题目 为什么会四舍五入?
float f=3.1415927;
printf("%f,%5.4f,%3.3f",f,f,f);
![](http://img.wesiedu.com/upload/c/8b/c8b4ddfe5ebb474a236005f046fafa55.jpg)
float f=3.1415927;
printf("%f,%5.4f,%3.3f",f,f,f);
![](http://img.wesiedu.com/upload/c/8b/c8b4ddfe5ebb474a236005f046fafa55.jpg)
![c语言的一道题目 为什么会四舍五入?](/uploads/image/z/4197604-4-4.jpg?t=c%E8%AF%AD%E8%A8%80%E7%9A%84%E4%B8%80%E9%81%93%E9%A2%98%E7%9B%AE+%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5%3F)
输入格式"%f",表示以浮点类型输出
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
其它为限定输出格式,应该看得懂
%5.4f指输出宽度为5,精度为4,实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去.
%3.3f指输出宽度为3,精度为3,实际长度超过3故应该按实际位数输出,小数位数超过3位部分被截去.
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
其它为限定输出格式,应该看得懂
%5.4f指输出宽度为5,精度为4,实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去.
%3.3f指输出宽度为3,精度为3,实际长度超过3故应该按实际位数输出,小数位数超过3位部分被截去.