C语言如何控制输出数字的有效位数?

不是控制小数点后几位
是控制有效位数
比如控制5位有效位数,则输出诸如0.12345, 1.2345, 12.345这样的数

只有浮点型数据,包括float和double有有效位数的说法。
可以用格式化输出函数printf输出数字,同时通过格式化字符串来控制数字有效位数。
printf在输出浮点数时,默认为6位小数,比如定义float f = 1;
调用printf("%f",a);时会输出1.000000。
格式化字符串可以设置成%a.bf的形式,其中:
1 a为输出的数字占据的总宽度(位数),包括整数部分,小数部分和小数点。当实际宽度大于设定宽度时,以实际宽度为准。
2 b为小数位数,也就是输出数字的有效位数。
比如调用printf("5.2f",a);就可以输出
1.00
从而达到控制有效位数的效果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-03

只需要在输出的最后添加上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中的*,在输出参数列表中指定精度。

本回答被网友采纳
第2个回答  2018-11-30

C语言控制输出数字的有效位数可以使用printf()函数格式化输出格式。

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。

其中格式化字符串可以控制输出数字的有效位数,只要将格式化字符串中加入%x.y就可以设置输出的数字的位数了。x指定数据的宽度,即在输出时可以输出的最多数字位数;y指定小数位数,即保留小数点后y位数。

扩展资料

printf()函数的功能及用法:

1、在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向未重定向终端(显示器、控制台等)输出字符。

2、无格式字符复制到输出流。

3、转换规范,每个规范导致在值参数列表中检索 1 个或更多个项。

4、转义序列,用于控制小数点后面的位数。

参考资料来源:百度百科——printf

本回答被网友采纳
第3个回答  2012-03-25
printf(“格式控制字符串”,输出表列)
格式控制字符串 为 %- 0 m.n l/h 格式字符
% 为格式说明的引导符号
- 为指定左对起输出
0 为 指定空位填0
m.n 指定输出域宽及精度
l/h 输出长度的修正
格式字符 为指定输出的数据类型
第4个回答  2012-03-25
在用printf输出的时候 使用 例 %5.2f 5位,其中两位小数位,
%-5.2f 左对齐 没有"-“则是右对齐。。等等 。本回答被提问者采纳