printf(“%.1f\n“,8/5)的输出结果为什么是0.000000
原因在于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相关推荐
- printf(%f\n, 3);输出结果为什么是0.000000(转载)
printf不会关心你输入的参数的类型,你输入的实际是 printf("%f",3),但是这个整型3不会被隐式类型转换为浮点型,而是被直接按内存内容当作浮点型 也就是说,内部使用等 ...
- 【C】printf按8进制、10进制、16进制输出以及高位补0
#include <iostream> #include <iomanip> #include "Circle.h" // Circle class dec ...
- c语言printf char数组,在C中输出二维char数组的最快方法
由于您不使用真正的格式,并且只打印单个字符,您可以使用简单的putchar()函数: for (y = 0; y < MAX_Y ; y++) { putchar ('\t'); for (x ...
- 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。
题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格.如输入1990,应输出"1 9 9 0". 输入 一个四位数 输出 增加空格输出 样例输入 199 ...
- 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,定义另一个数 ...
- 写一个函数,输入一个4位数字,要求输出这四个数字字符,但每两个数字间空两个空格。 如输入1990,应输出“1 9 9 0”
/*写一个函数,输入一个4位数字,要求输出这四个数字字符,但每两个数字间空两个空格. 如输入1990,应输出"1 9 9 0"*/#include <stdio.h>i ...
- 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空格。如输入1990,应输出”1 9 9 0“
/*写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一格空格.如输入1990,应输出"1 9 9 0"*/ void doubleBoring(int p){ ...
- ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出
题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格.如输入1990,应输出"1 9 9 0". 输入 一个四位数 输出 增加空格输出 样例输入 199 ...
- 成功解决r2_score函数输出值始终为0的情况
成功解决r2_score函数输出值始终为0的情况 目录 解决问题 解决方法 解决问题 r2_score函数输出值始终为0 解决方法 将 r2_score(test_y, test_predict) 改 ...
最新文章
- centos安装pg以及pg配置ssl
- 浅析深度学习中Batch Size大小对训练过程的影响
- 初识JavaScript(二)
- 【干货】值得收藏的 14 个 Linux 下 CPU 监控工具
- html中after伪类原理,css :after伪类+content使用说明和方法
- produces在@requestMapping中的使用方式和作用
- linux 自动安装mysql_linux安装mysql教程
- SCCM2007 R2的部署前准备,SCCM系列之一
- jmeter配置文件--随机变量
- springboot调整请求头大小_新手也能看懂的 SpringBoot 异步编程指南
- 深入理解Servlet原理
- 概率论与统计学——学习资料(更新..........)
- Mathematic Paradigm
- 使用POI编辑Word文档添加文字水印
- 百谷歌---学习工作好东西啊!!
- TTMS剧院票务管理系统(xupt)
- linux编译动态库未定义,GCC链接库的一个坑:动态库存在却提示未定义动态库的函数...
- Godaddy域名A记录解析详细教程
- linux双系统启动引导,linux windows 双系统并存与启动引导
- 前端项目中碰到的难题bug
热门文章
- 识别、提取三维超声中标准平面的总结+论文+代码+数据集+练习合集
- 大疆机甲大师python编程_潜力需要分享来加速挖掘:大疆机甲大师Python开发两周感想之一...
- 【大数据】Hadoop (一) 入门
- 输入两个字符串,从第一个字符串中删除第二个字符串中的字符
- 《游戏学习》Java版仿windows扫雷小游戏源码
- 【前端冷知识】你还在用charCodeAt那你就out了
- 使用typora在CSDN中用markdown编辑器发布gif图、mp3音频和mp4视频的语法
- WiFi连接满格信号但是不能上网?
- pdu串短信格式说明
- android读取带公章的pdf文件,关于iOS的PDF(含有印章的)显示问题