黑马程序员技术交流社区
标题:
printf函数和scanf函数之格式控制符的精度问题
[打印本页]
作者:
达摩八戒
时间:
2014-9-1 20:21
标题:
printf函数和scanf函数之格式控制符的精度问题
/*
%d 表示输出带符号的十进制整形变量或常量
%c 表示输出char类型的变量或常量
%f 表示输出浮点型的变量或常量,默认小数点后6位
%s 表示输出字符串类型的变量或常量
%p 表示输出变量或者常量的内存地址
%md m域宽输出m位的十进制整数
要打印的整数的位数超过m,m自动被忽略,以该整数的位数为准
小于m,如果m为正,则左侧补空白,左对齐;如果m为负,右对齐。
%omd位数不足部分补0
%f 默认小数点后6位,超过部分四舍五入
%m.nf m是总共显示m位(包括小数点),n是小数点后显示n位
注意:单精度的精度有限,碰到特别大的数和特别小的数相加,要写成双精度
*/
#include<stdio.h>
int main(){
int a=123456,b=34,c=567,d=234;
printf("%3d,%4d,%-4d,%05d\n",a,b,c,d);
/*
123456, 34,567 ,00234
*/
float a1=1.1234561f,a2=0.0000001f;
printf("%f\n",a1+a2);//输出结果是1.123456
printf("%.7f\n",a1+a2);//输出结果是1.1234562
printf("%4.2f\n",a1+a2);//输出结果是1.12
printf("%9.5f\n",a1+a2);//输出结果是 1.12346
printf("%-9.5f\n",a1+a2);//输出结果是1.12346 ;
double a3=1.1234561,a4=0.0000001;
printf("%f\n",a3+a4);//输出结果是1.123456
printf("%.7f\n",a3+a4);//输出结果是1.1234562
printf("%4.2f\n",a3+a4);//输出结果是1.12
printf("%9.5f\n",a3+a4);//输出结果是 1.12346
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2