C语言中printf输出浮点数按"%m.nf"格式输出,为什么有的会四舍五入,而有的没有?

3485℃ DOMINIC

C语言中printf输出浮点数按"%m.nf"格式输出,为什么有的会四舍五入,而有的没有?

C语言中输出格式%m.nf的意思

举个例子来说。比如

float i=10.1;

printf("%7.2f",i);

那么答应的结果就为: 10.10(包含空格在内占7位,小数占2位)。

建议你多上机实验实验,很容易就会懂的。

c语言问题 45.678 以%2.2f的形式输出,会得到什么结果。

答案当然是 45.68

%m.nf的意思是将浮点数以宽度m,保留n为小数。当浮点数的宽度小于m时,左侧用空格补齐,大于则无效;小数点位数小于n时补0.小数点位数大于指定位数n时,就四舍五入到指定位数。

float a=12.12345,b=13.12c=14.22;printf("%4.2f\n%6.3f%9.3f",a,b,c);的结果是:

12.12

13.120

14.220 //前面有空格哦

小数点也算一个宽度。12.12的宽度为5,大于4,指定宽度无效

13.120,小数点位数不足补0,指定宽度正好

14.220,指定宽度大于实际宽度(6)左侧就用空格补咯。

另外还有%-m.nf 这里的-号意思是左对齐;%#f 这里的#号可以在输入或输出时跳过一个数据

在c语言中printf语句%m.nf 那个m指数据所占的总列数, 怎样才可以知道一个数据的总列

213.82631的总列数是9,

有负号时,负号也算一列。

关键字:c语言 printf 输出 保留小数 %m.nf

#include <math.h>

#include <stdio.h>

int main()

{

double pi=acos(-1);

int k;

printf("输入数字");

scanf("%d",&k);

printf("圆周率π=%.*f(精确到小数点后%d位。)\n",k,pi,k);

return 0;

}