C语言FLOAT类型
来源:互联网 发布:怎么下载发票软件 编辑:程序博客网 时间:2024/06/11 05:19
摘录自CSDN论坛:点击打开链接
问题:
1)C语言规定了FLOAT类型,6~7位的有效数字,取值范围-3.4e-38至3.4e38。这个取值范围是从-0.00000000000000000000000000034至34000000000000000000000000000,那-1.0不在这个范围内,不能用float定义?
2)而且同为32位,float类型比long int类型(0~4294967295)的正值取值范围还大?
3)还有就是有关有效数字,C语言中的有效数字是如何定义的?是第一个不为0的数字开始计算,还是小数点后第一个不为零的数?
123456.789
0.123456789
123456789.0
这些有效数字都是如何计算的啊?
解答:
1)-0.00000000000000000000000000034至34000000000000000000000000000的范围包含了-1,因为在计算机里面负数是用补码表示的具体深入请自己看内存方面的章节
2)实型数据在内存中存在的时候是以指数形式储存的,一般前三个字节储存小数部分,后一个字节储存指数部分
比如380在内在中的储存是小数部分:0.38,指数部分:3,即0.38*10^3(这个与科学计数法不同),前面的是小数,在转换为二进制数时有时会出现误差(具体自己看小数转二进制数部分,可能出现无限循环),所以实型数据的储存并不准确
所以实型数据用一个字节来储存指数部分,只表示38位已经算是很小了,主要是位数多了,前面的小数部分不准确
3)有效数字是从第一个不为0的数开始
0 0
- C语言FLOAT类型
- C语言的float类型
- C语言float类型有点奇怪
- C语言强制类型转换 int ->float
- C语言中float,double类型,在内存中的结构
- C语言 float类型的数据相加缺失精度
- C语言中float类型在内存中的表示
- C语言中int到float的强制类型转换
- C语言二进制和float、int类型转换
- C语言中int到float的强制类型转换
- C语言基础 scanf读取int,double,float类型变量
- C float类型 范围 详解
- C函数参数类型提升 --- float类型
- c语言float数值精度
- C语言深入理解float
- C语言中float,double等类型,在内存中的结构
- C语言中float,double等类型,在内存中的结构
- C语言中float,double类型,在内存中的结构(存储方式).
- Android学习笔记——SQLite数据库案例【商品展示】
- Java中类实例化时该类中代码运行顺序
- Android事件分发和消费机制理解
- poj 1207 The 3n + 1 problem
- 个人用的潘多拉大杂烩插件教程
- C语言FLOAT类型
- Unit2.11 文档
- Mybatis中example类的使用
- AbstractExecutorService源码理解
- Flask中SqlAlchemy的读写分离配置
- 线段树—hdu1166
- uva1149(贪心)
- [李景山php] 利用redis 作为session的处理程序
- C++实验五—数组分离