黑马程序员技术交流社区

标题: printf函数和scanf函数之格式控制符的精度问题 [打印本页]

作者: 达摩八戒    时间: 2014-9-1 20:21
标题: printf函数和scanf函数之格式控制符的精度问题
  1. /*
  2. %d     表示输出带符号的十进制整形变量或常量
  3. %c     表示输出char类型的变量或常量
  4. %f     表示输出浮点型的变量或常量,默认小数点后6位
  5. %s     表示输出字符串类型的变量或常量
  6. %p     表示输出变量或者常量的内存地址
  7. %md    m域宽输出m位的十进制整数
  8. 要打印的整数的位数超过m,m自动被忽略,以该整数的位数为准
  9. 小于m,如果m为正,则左侧补空白,左对齐;如果m为负,右对齐。
  10. %omd位数不足部分补0
  11. %f     默认小数点后6位,超过部分四舍五入
  12. %m.nf  m是总共显示m位(包括小数点),n是小数点后显示n位
  13. 注意:单精度的精度有限,碰到特别大的数和特别小的数相加,要写成双精度
  14. */

  15. #include<stdio.h>
  16. int main(){
  17. int a=123456,b=34,c=567,d=234;
  18. printf("%3d,%4d,%-4d,%05d\n",a,b,c,d);
  19. /*
  20.       123456,  34,567 ,00234
  21.       */
  22. float a1=1.1234561f,a2=0.0000001f;
  23. printf("%f\n",a1+a2);//输出结果是1.123456
  24. printf("%.7f\n",a1+a2);//输出结果是1.1234562
  25. printf("%4.2f\n",a1+a2);//输出结果是1.12
  26. printf("%9.5f\n",a1+a2);//输出结果是  1.12346
  27. printf("%-9.5f\n",a1+a2);//输出结果是1.12346  ;
  28. double a3=1.1234561,a4=0.0000001;
  29. printf("%f\n",a3+a4);//输出结果是1.123456
  30. printf("%.7f\n",a3+a4);//输出结果是1.1234562
  31. printf("%4.2f\n",a3+a4);//输出结果是1.12
  32. printf("%9.5f\n",a3+a4);//输出结果是  1.12346
  33. return 0;
  34. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2