1、将浮点型以整形的类型输出问题

用VC6.0,会把以整形输出形式的浮点数输出为0;

  1. 1 #include"stdio.h"
  2. 2 int main()
  3. 3 {
  4. 4 float x=2.5,y=4.7,z;
  5. 5 int a=7;
  6. 6 z=x+a%3*(int)(x+y)%2/4;
  7. 7 printf("%d\n",z);
  8. 8 printf("%d\n",x);
  9. 9 printf("%d\n",x+a%3*(int)(x+y)%2/4);
  10. 10 printf("%f\n",x+a%3*(int)(x+y)%2/4);
  11. 11 return 0;
  12. 12 }

但是要是X大一点的话就不会输出为0了

2、将整形以浮点型的类型输出问题

#include <stdio.h>
static void forcefloat(float *p)
{
     float f = *p;
     forcefloat(&f);
}

void main()
{
     int i=2;
     float j = 2.0;
     printf("\n\n%f %f\n",i,j);
}
------------------------------------
问题是这样的,为什么程序的输出结果是
0.0000000  2.0000000

我的猜测是因为int型是两个字节,所以2表示为0000000000000010,那么如果按照浮点数输出,则把这两个字节看作是浮点数的低字节,也就是尾数部分,所以结果是0.00000000
但是我尝试着将i的值变为65535,结果还是0.0000000,我想请高手替我解释一下,以能讲清楚基本原理并能上机通过为准,谢谢~~~~~~~

这个猜测是错误的,出现这样问题的原因是float型的每一位的意义与整形不同

int i=2;

4个字节就是 00000000 00000000 00000000 00000010
然后根据你的printf 格式,
float 解析:
高位0表示正数,
指数8位都是0, 那么就是 -127 次方, 然后...尾数已经不用考虑了 ~

-127 次方,
得到的结果基本是 0,
以float 6-7 位的精度,
显然得到的结果是 0 ...
(2 的-127 次方, 估计得接近40位小数才有非0值出现)

参考:https://blog.csdn.net/xxgxgx/article/details/46722143

https://www.ruanyifeng.com/blog/2010/06/ieee_floating-point_representation.html

c、c++中-int型以float或者float型以int输出问题的更多相关文章

  1. java 基础--8 种基本数据类型:整型、浮点型、布尔型、字符型 整型中 byte、short、int、long 的取值范围 什么是浮点型?什么是单精度和双精度?为什么不能用浮点型表示金额?

     一.8种基本数据类型(4整,2浮,1符,1布): 整型:byte(最小的数据类型).short(短整型).int(整型).long(长整型): 浮点型:float(浮点型).double(双精度浮点 ...

  2. block中出现此种报错: Incompatible block pointer types initializing 'float (^__strong)(float, float)' with an expression of type 'int (^)(float, float)'

    当block(代码块)的返回值是float时,应注意的地方:定义的返回值类型一定要与return的返回值类型一样 我们以两个数的四则运算来举例 在main.m文件中的四则运算中,我采用两种返回值类型( ...

  3. 2016年11月3日JS脚本简介数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6.布尔型数据:bool 7.对象类型:object 8.二进制:binary 语言类型: 1.强类型语言:c++ c c# java 2.弱类型语

    数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6 ...

  4. int float 的具体的取值范围取决于具体的机器 整数除法舍位 整形(int)也可以用于存储字符型数据

    int  通常为16位  存储单元 float  通常为32位 取决于具体的机器 #include main() { int fathr,celsius; int lower,upper,step; ...

  5. Java中数据类型转换&基本类型变量和对象型变量

    1.Java的数据类型分为三大类 布尔型,字符型和数值型 其中数值型又分为整型和浮点型 2.Java的变量类型 布尔型 boolean 字符型 char 整型    byte,short,int,lo ...

  6. 实型(浮点型):float、double

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib. ...

  7. java中浮点数的比较(double, float)(转)

    问题的提出:如果我们编译运行下面这个程序会看到什么? public static void main(String args[]){ System.out.println(0.05+0.01); Sy ...

  8. js限制输入数字能输入小数点,js定义数组,js往数组中添加数据,js将字符型转为数字型,除法结果保留两位小数——js小测:计算比赛得分

    一个朋友跟我说要去给某个比赛算分: 规则:去掉最低分最高分求平均分: 最近在学习大数据可视化——图谱,用到js一些东西,所以今天就用js练练 用到知识点: js限制输入数字能输入小数点,js定义数组, ...

  9. (C++)读取一个输入的int型十进制数字的位数,并正序输出每个位上的值(不同数位的值用1个空格字符间隔)

    1 /* 2 程序功能:读取一个输入的int型十进制数字的位数,并正序输出每个位上的值(不同数位的值用1个空格字符间隔). 3 例如:当输入985这个数字时,显示如下信息: 4 985是一个3位数字! ...

随机推荐

  1. shell脚本练习案例

    转至:https://www.cnblogs.com/tui463/archive/2004/01/13/12663024.html shell脚本练习案例 案例一:通过位置变量创建系统账户及密码 分 ...

  2. Qt:如何生成可执行文件

    参考 (18条消息) QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)_kslly的专栏-CSDN博客 环境配置 Windows 10系统 MSVC 2017编译器 工具 Qt 5自带的 ...

  3. gcc与g++区别;编译选项

    gcc与g++区别:可以相互编译,但是gcc不会自动进行c++的链接 gcc g++编译选项: -E 预处理 -S 编译指定源文件但是不尽兴汇编 -c 编译汇编,但是不进行链接 -o 编译成可执行文件 ...

  4. VirtualBox--修改虚拟硬盘大小

    学习:Oracle VM VirtualBox做好虚拟硬盘后,如何进一步修改虚拟硬盘的大小 修改为50G,修改后在虚拟机中查看:Machine→Settings→Storage VBoxManage ...

  5. linux访问控制列表 ACL实现文件权限设置

    ACL:Access Control List,实现灵活的文件权限管理 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限 CentOS7 默认创建的xfs和ext4文件系统具有ACL功能 A ...

  6. tp5 ajax批量删除(自写)

    html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  7. tp 5 框架 ajax软删除,回收站,数据恢复

    //HTML代码: <td> <span onclick="del({$v.id})">删除</span> </td> //ajax ...

  8. 全量、增量数据在HBase迁移的多种技巧实践

    作者经历了多次基于HBase实现全量与增量数据的迁移测试,总结了在使用HBase进行数据迁移的多种实践,本文针对全量与增量数据迁移的场景不同,提供了1+2的技巧分享. HBase全量与增量数据迁移的方 ...

  9. Hive框架

    1.什么是Hive? Hive 是基于Hadoop之上的数据仓库.2.什么是数据仓库? 数据仓库其实就是一个数据库 数据仓库是一个面向主题的,集成的,不可更新的,随时间不变化的数据集合,它用于支持 企 ...

  10. springsecurity-01-0511

    springsecurity-01-0511课堂代码 BaseController package com.springsecurity.springsecurity.controller; impo ...