C语言如何控制输出数字的有效位数?
是控制有效位数
比如控制5位有效位数,则输出诸如0.12345, 1.2345, 12.345这样的数 展开
可以用格式化输出函数printf输出数字,同时通过格式化字符串来控制数字有效位数。
printf在输出浮点数时,默认为6位小数,比如定义float f = 1;
调用printf("%f",a);时会输出1.000000。
格式化字符串可以设置成%a.bf的形式,其中:
1 a为输出的数字占据的总宽度(位数),包括整数部分,小数部分和小数点。当实际宽度大于设定宽度时,以实际宽度为准。
2 b为小数位数,也就是输出数字的有效位数。
比如调用printf("5.2f",a);就可以输出
1.00
从而达到控制有效位数的效果。
只需要在输出的最后添加上printf函数就可以了:
double 型数据:printf("%.5lf\n",a);
float 型数据: printf("%.5f\n",a);
其中 printf("%n.mlf\n",a); n为一共多少位,m为小数后多少位。
以下是格式:
printf(“格式控制字符串”,输出表列)
格式控制字符串 为 %- 0 m.n l/h 格式字符,% 为格式说明的引导符号,- 为指定左对起输出,0 为 指定空位填0,m.n 指定输出域宽及精度,l/h 输出长度的修正,格式字符为指定输出的数据类型。
扩展资料:
除输出数字的有效位数需要控制,精度也需要控制。
精度格式符以“.”开头,后跟十进制整数。可取值如下:
十进制整数。
(1)对于整型(d,i,o,u,x,X),precision表示输出的最小的数字个数,不足补前导零,超过不截断。
(2)对于浮点型(a, A, e, E, f ),precision表示小数点后数值位数,默认为六位,不足补后置0,超过则截断。
(3)对于类型说明符g或G,表示可输出的最大有效数字。
(4)对于字符串(s),precision表示最大可输出字符数,不足正常输出,超过则截断。
precision不显示指定,则默认为0
以星号代替数值,类似于width中的*,在输出参数列表中指定精度。
C语言控制输出数字的有效位数可以使用printf()函数格式化输出格式。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
其中格式化字符串可以控制输出数字的有效位数,只要将格式化字符串中加入%x.y就可以设置输出的数字的位数了。x指定数据的宽度,即在输出时可以输出的最多数字位数;y指定小数位数,即保留小数点后y位数。
扩展资料
printf()函数的功能及用法:
1、在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向未重定向终端(显示器、控制台等)输出字符。
2、无格式字符复制到输出流。
3、转换规范,每个规范导致在值参数列表中检索 1 个或更多个项。
4、转义序列,用于控制小数点后面的位数。
参考资料来源:百度百科——printf
格式控制字符串 为 %- 0 m.n l/h 格式字符
% 为格式说明的引导符号
- 为指定左对起输出
0 为 指定空位填0
m.n 指定输出域宽及精度
l/h 输出长度的修正
格式字符 为指定输出的数据类型
%-5.2f 左对齐 没有"-“则是右对齐。。等等 。