您的位置:首页 > 编程语言 > C语言/C++

C语言printf(""),浮点数打印保留有效位数,小数部分的四舍五入

2017-07-13 19:16 3111 查看
1.printf("%3.0f",floatNum):不保留小数

说明:%3.0f表明待打印的浮点数(floatNum)至少占3个字符宽,且不带小数点和小数部分,整数部分至少占3个位宽;

注意:这里的3只代表整数部分至少占3位,舍弃小数点和小数点后面的部分

2.printf("%6.2f".floatNum):保留两位小数

说明:%6.2f 表明待打印的数(floatNum)至少占6个字符宽度(包括两位小数和一个小数点),且小数点后面有2位小数,小数点占一位,所以整数部分至少占3位。

注意:这里的6是待打印的数至少占据的字符宽度,包括两位小数(如果小数不够两位用0补位,例如100.1打印出来为100.10)和一个小数点,所以整数部分至少占3个字符宽度。

3.单精度实数的有效位数一般为7位,输出6位小数,超出有效位数输出就是错误的。

4.双精度数有效位数一般为16位,输出6位小数,超出有效位数可能截断或错误值。

5.关于保留小数点后有效位数四舍五入原则

#include<stdio.h>

int main()
{

printf("%f\n", 100.00);
printf("%.0f\n", 100.00);
printf("\n");

printf("%f\n", 100.30);
printf("%.0f\n", 100.30);
printf("\n");

printf("%f\n", 100.50);
printf("%.0f\n", 100.50);
printf("\n");

printf("%f\n", 100.53);
printf("%.1f\n", 100.53);
printf("\n");

printf("%f\n", 100.55);
printf("%.1f\n", 100.55);
printf("\n");

printf("%f\n", 100.56);
printf("%.1f\n", 100.56);
printf("\n");

printf("%f\n", 100.563);
printf("%.2f\n", 100.563);
printf("\n");

printf("%f\n", 100.565);
printf("%.2f\n", 100.565);
printf("\n");

printf("%f\n", 100.566);
printf("%.2f\n", 100.566);
printf("\n");
return 0;
}运行结果:



注意:从图中可以看书,保留0位小数的时候,只要小数点后第一位>=5,就可以进位,但是保留1位或者2位等等,保留小数的后一位要>5才可以进位,否则就舍去。

我是根据运行结果看到,有可以解释下的,请留言,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: