原因在于printf函数printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值。

8/5的算术表达式的到的是一个整型常量1,它被以整型存储在内存中。

printf("%d\n", sizeof(8.0/5.0));
printf("%d\n", sizeof(8/5));
printf("float: %d\n", sizeof(float));
printf("int: %d\n", sizeof(int));

在我的环境下,float和int均为四字节,而浮点常量则是以8字节的double进行存储,而printf输出时,float是当double处理的,同样是使用8字节,当一个四字节数据用八字节浮点数的形式读出的时候,也就是会读之前的很多位0,最后按照(有效数字)×(基数2)pow(指数)的方式来取数,自然结果是0.000000

在例如如下程序中

printf("%f\n", 8/5);printf("%f\n", 8.0/5.0);
printf("%f\n", 8/5);

在单独输出8/5时产生的是0.000000,而如果在输出8/5之前正常的输出一个浮点数据,那么在输出8/5时则产生了一个接近于1.600000的结果,原因应该与上述理由相同,printf在使用%f输出整型常量时,额外的读取了不属于整型大小的8字节数据,进而产生了区别于正确结果的输出。

printf(“%.1f\n“,8/5)的输出结果为什么是0.000000相关推荐

  1. printf(%f\n, 3);输出结果为什么是0.000000(转载)

    printf不会关心你输入的参数的类型,你输入的实际是 printf("%f",3),但是这个整型3不会被隐式类型转换为浮点型,而是被直接按内存内容当作浮点型 也就是说,内部使用等 ...

  2. 【C】printf按8进制、10进制、16进制输出以及高位补0

    #include <iostream> #include <iomanip> #include "Circle.h" // Circle class dec ...

  3. c语言printf char数组,在C中输出二维char数组的最快方法

    由于您不使用真正的格式,并且只打印单个字符,您可以使用简单的putchar()函数: for (y = 0; y < MAX_Y ; y++) { putchar ('\t'); for (x ...

  4. 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。

    题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格.如输入1990,应输出"1 9 9 0". 输入 一个四位数 输出 增加空格输出 样例输入 199 ...

  5. C语言基础课 编写程序之编程实现在一个字符串统计各元音字母(即A,E,I,O,U)的个数,注意,字母不分大小写。例如,输入THIs is a boot,则输出应为1 0 2 2 0

    编程实现在一个字符串统计各元音字母(即A,E,I,O,U)的个数,注意,字母不分大小写.例如,输入THIs is a boot,则输出应为1 0 2 2 0. 解题思路:1.输入字符串s,定义另一个数 ...

  6. 写一个函数,输入一个4位数字,要求输出这四个数字字符,但每两个数字间空两个空格。 如输入1990,应输出“1 9 9 0”

    /*写一个函数,输入一个4位数字,要求输出这四个数字字符,但每两个数字间空两个空格. 如输入1990,应输出"1 9 9 0"*/#include <stdio.h>i ...

  7. 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空格。如输入1990,应输出”1 9 9 0“

    /*写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空格.如输入1990,应输出"1 9 9 0"*/ void doubleBoring(int p){ ...

  8. ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出

    题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格.如输入1990,应输出"1 9 9 0". 输入 一个四位数 输出 增加空格输出 样例输入 199 ...

  9. 成功解决r2_score函数输出值始终为0的情况

    成功解决r2_score函数输出值始终为0的情况 目录 解决问题 解决方法 解决问题 r2_score函数输出值始终为0 解决方法 将 r2_score(test_y, test_predict) 改 ...

最新文章

  1. centos安装pg以及pg配置ssl
  2. 浅析深度学习中Batch Size大小对训练过程的影响
  3. 初识JavaScript(二)
  4. 【干货】值得收藏的 14 个 Linux 下 CPU 监控工具
  5. html中after伪类原理,css :after伪类+content使用说明和方法
  6. produces在@requestMapping中的使用方式和作用
  7. linux 自动安装mysql_linux安装mysql教程
  8. SCCM2007 R2的部署前准备,SCCM系列之一
  9. jmeter配置文件--随机变量
  10. springboot调整请求头大小_新手也能看懂的 SpringBoot 异步编程指南
  11. 深入理解Servlet原理
  12. 概率论与统计学——学习资料(更新..........)
  13. Mathematic Paradigm
  14. 使用POI编辑Word文档添加文字水印
  15. 百谷歌---学习工作好东西啊!!
  16. TTMS剧院票务管理系统(xupt)
  17. linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...
  18. Godaddy域名A记录解析详细教程
  19. linux双系统启动引导,linux windows 双系统并存与启动引导
  20. 前端项目中碰到的难题bug

热门文章

  1. 识别、提取三维超声中标准平面的总结+论文+代码+数据集+练习合集
  2. 大疆机甲大师python编程_潜力需要分享来加速挖掘:大疆机甲大师Python开发两周感想之一...
  3. 【大数据】Hadoop (一) 入门
  4. 输入两个字符串,从第一个字符串中删除第二个字符串中的字符
  5. 《游戏学习》Java版仿windows扫雷小游戏源码
  6. 【前端冷知识】你还在用charCodeAt那你就out了
  7. 使用typora在CSDN中用markdown编辑器发布gif图、mp3音频和mp4视频的语法
  8. WiFi连接满格信号但是不能上网?
  9. pdu串短信格式说明
  10. android读取带公章的pdf文件,关于iOS的PDF(含有印章的)显示问题