c语言%m.nf啥意思 mn能相等吗 急!C语言中printf输出%m.nf时具体情况有哪几种?

c\u8bed\u8a00%m.nf\u4ec0\u4e48\u610f\u601d

printf()\u7b49\u51fd\u6570\u91cc\u7528\u7684\u8f93\u5165\u8f93\u51fa\u683c\u5f0f\u3002
\u6bd4\u5982\u7528%2.3f\u8f6c\u4e49\u5b57\u7b26\uff0c\u8f93\u51fafloat a=4.3\u7684\u503c,\u5728\u5c4f\u5e55\u4e0a\u6253\u5370\u51fa\u6765\u7684\u5c31\u662f4.300
\u5176\u4e2d%2.3f\uff0c2\u4ee3\u8868\u6570\u503c\u603b\u957f\u5ea6\uff0c\u5982\u679c\u957f\u5ea6\u4e0d\u8db32\u4f4d\uff0c\u8f93\u51fa\u65f6\u4f1a\u5728\u524d\u9762\u7528\u7a7a\u683c\u8865\u81f32\u4f4d
\u5176\u4e2d.3\u4ee3\u8868\u5c0f\u6570\u70b9\u540e\u7cbe\u786e\u52303\u4f4d\uff0c\u5982\u679c\u4e0d\u8db33\u4f4d\uff0c\u5c31\u4f1a\u5728\u540e\u9762\u52a00
f\u8868\u793a\u6d6e\u70b9\u578b

#include #include void main(){double a=867.234;printf("%6.3f\n",a);printf("%7.3f\n",a);printf("%8.3f\n",a);printf("%7.2f\n",a);printf("%7.4f\n",a);system("pause");}\u4e0a\u8ff0\u4ee3\u7801\u8f93\u51fa\u5982\u4e0b

m\u5c0f\u4e8e\u5b9e\u9645\u957f\u5ea6\u65f6\uff0c\u4e0d\u8d77\u4f5c\u7528\uff1bm\u7b49\u4e8e\u5b9e\u9645\u957f\u5ea6\u662f\u7167\u5e38\u8f93\u51fa\uff1bm\u5927\u4e8e\u5b9e\u9645\u957f\u5ea6\u65f6\uff0c\u5de6\u8fb9\u8865\u96f6(\u56e0\u4e3a\u53f3\u5bf9\u9f50)\uff0cn\u662f\u6307\u5c0f\u6570\u70b9\u540e\u4f4d\u6570\uff0c\u4e0d\u591f\u540e\u9762\u8865\u96f6\uff0c\u591a\u4e86\u56db\u820d\u4e94\u5165\u3002

首先%表示后面是一个输出描述串
f表示输出float型数据
输出的float最大占用m个字符,不足的部分用空格补齐,右对齐(空格补在左侧),小数点和符号也计算在内,如果实际数据占用的字符数超过m则按照实际的输出
.n表示要求输出小数点后面n位,printf函数会自动在n+1位上进行四舍五入
比如float a=3.14159; printf("%8.3\n",a);则会得到的输出是:前面3个空格后面跟3.142
这种输出格式主要用于输出数据的列对齐、小数点对齐等场合
普通m大于n(因为要考虑符号位和小数点的占用位),相等也是合法数据,只是小数点前面的补空格就不可能了

%m.nf表示按如下格式输出float型数据:
数据至少占m个字符宽度(数据不足m位时前面用空格补足,多于m位时有多少输出多少),小数保留n位。

举个例子来说。比如
float i=10.1;
printf("%7.2f",i);

那么答应的结果就为: 10.10(包含空格在内占7位,小数占2位)。
两着可以相等的,没有什么必然联系

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网