C语言中printf输出浮点数按"%m.nf"格式输出,为什么有的会四舍五入,而有的没有?
更新时间:2021-10-27 10:57:20 • 作者:DOMINIC •阅读 2816
- C语言中输出格式%m.nf的意思
- c语言问题 45.678 以%2.2f的形式输出,会得到什么结果。
- 在c语言中printf语句%m.nf 那个m指数据所占的总列数, 怎样才可以知道一个数据的总列
- 关键字: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;
}