头文件:

<cfloat> (float.h)


浮点类型的特性

这个头文件为特殊系统和编译器的实现描述了浮点类型的特征.

一个浮点数包含四个元素:

  • 一个标志(a sign):正或负;
  • 一个基数(a base):这表示一串不同的数字能够被一个个单一的数字所表示(2 就是二进制(binary),10就是十进制(decimal),16就是十六进制(hexadecimal)...);
  • 一个有效数(a significand):这是一系列前面所谈到的基数的数字,在这一系列中数字的位数就是众所周知的精度;
  • 一个指数(an exponent):它代表着有效数字的偏移量,用下面的方式影响着其值:
  浮点数值 = 有效数 x 基数 指数 ,(还有相应的标志(sign))
  (image)

宏常量


下面的表格显示了这个头文件中定义的不同的变量的名称和所有实现的最小值最大值
(具体的实现可能有的值比这个大或者小 按照说明):

  当一组宏存以FLT_,DBL_和LDBL_为前缀时,以FLT_开头的适用于float,以DBL_开头的适用于double,以LDBL_开头的适用于long double;

名称 代表 表示
FLT_RADIX 2或者更大 基数 (radix) 所有浮点数类型的基数
FLT_MANT_DIG
DBL_MANT_DIG
LDBL_MANT_DIG
 

尾数的位数

(MANTissa DIGits)

 有效数的精度,符合有效数字的位数
FLT_DIG
DBL_DIG
LDBL_DIG

6 或者更大

10 或者更大

10 或者更大

精度

(DIGits)

带十进制的数能够转化为一个浮点数并且将其再次转化回来时不改变整数数字

FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
   最小的指数 用于生成一个标准化的浮点数指数的最小负整数值
FLT_MIN_10_EXP
DBL_MIN_10_EXP
LDBL_MIN_10_EXP

-37 或者更小

-37 或者更小

-37 或者更小

最小以10为基数的指数

用于生成一个标准浮点数的十进制指数表达式

的最小负整数

FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
   最大的指数  用于生成一个标准化的浮点数指数的最大整数值
FLT_MAX_10_EXP
DBL_MAX_10_EXP
LDBL_MAX_10_EXP

37 或者更大

37 或者更大

37 或者更大

 最大以10为基数的指数

用于生成一个标准浮点数的十进制指数表达式

的最大整数

FLT_MAX
DBL_MAX
LDBL_MAX
1E+37 或者更大
1E+37 或者更大
1E+37 或者更大
 最大数  表示最大有限的浮点数
FLT_EPSILON
DBL_EPSILON
LDBL_EPSILON
1E-5 或者更小
1E-9 或者更小
1E-9 或者更小
 EPSILON :)  能够表示1和最小值的差大于1
FLT_MIN
DBL_MIN
LDBL_MIN
1E-37 或者更小
1E-37 或者更小
1E-37 或者更小
 最小数  表示最小有限的浮点数
FLT_ROUNDS    舍入方式

舍入行为,可能的值:

-1:未确定的

0:向0舍入

1:四舍五入

2:向正无穷

3:向负无穷

*适用于所有浮点类型(float,double和long double)

FLT_EVAL_METHOD    赋值方式

赋值格式的属性,可能的值:

-1:未确定的

0:赋值类型的范围和精度

1:赋值时将float和double当作double,

long double 当作long double

2:赋值时所有都当作long double,其它负数都表示为实现的定义(implementation-defined)行为

*适用于所有浮点类型

DECIMAL_DIG    小数精度

可以将一个十进制数转化一个浮点类型的数字,

并且再次转为到与原来一样的数字时不丢失精度

通用性


FLT_EVAL_METHOD DECIMAL_DIG 是在符合C99标准的库中定义的或者只在符合C11的库中

请参阅


<climits> (limits.h) 整数类型的大小

/*

  第一次修改时间:2016年1月30日 20:32:35

*/

<cfloat> (float.h)的更多相关文章

  1. C 标准库系列之float.h

    float.h 内部主要包含了一系列的浮点数宏.指明可移植程序必要的常量:浮点数格式一般为Spxbe;其中S表示+-:p表示底数.b表示基数如2.8.10.16等进制,e为指数标识E或e: 在一般情况 ...

  2. <limits.h>和<float.h>

    头文件<limits.h>中定义了用于表示整类型大小的常量.以下所列的值是可接受的最小值,实际系统中可能有更大的值. CHAR_BIT char类型的位数 CHAR_MAX UCHAR_M ...

  3. <math.h>与<float.h>

    (一) <math.h> <math.h>文件中已经定义了M_PI,如下所示,用户可以直接使用: //math.h........................ #if de ...

  4. Standard C 之 math.h和float.h

    对于C Standard Library 可以参考:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ 或者 http://www.cplusplus.c ...

  5. C 标准库 - <float.h>

    C 标准库 - <float.h> 简介 C 标准库的 float.h 头文件包含了一组与浮点值相关的依赖于平台的常量.这些常量是由 ANSI C 提出的,这让程序更具有可移植性.在讲解这 ...

  6. float.h

    float.h 一背景知识 浮点算术非常复杂   很多小的处理器在硬件指令方面甚至不支持浮点算术   其他的则需要一个独立的协处理器来处理这种运算   只有最复杂的计算机才在硬件指令集中支持浮点运算 ...

  7. <float.h>中DBL_TRUE_MIN的定义和作用

    搬运自己2016年11月22日于SegmentFault发表的文章.链接:https://segmentfault.com/a/1190000007565915 在学习C Prime Plus的过程中 ...

  8. C 标准库系列之limits.h

    limits.h 类似于float.h,其定义了一些列类型的值的范围.限制值,也就是说该类型的值不可以大于该上界或者小于该类型值的下界: glibc中宏定义了一下的值: # define MB_LEN ...

  9. float 浮点数与零值0比较大小

    float x: 千万不要写x==0; 写出float x 与“零值”比较的if语句——一道面试题分析 写出float  x 与“零值”比较的if语句 请写出 float  x 与“零值”比较的 if ...

随机推荐

  1. 使用jsonp获取天气情况

    在这里使用的是百度天气: 整体代码如下: js: <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js ...

  2. Git--将服务器代码更新到本地

    1. git status(查看本地分支文件信息,确保更新时不产生冲突) 2. git checkout -- [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上, ...

  3. Ant自动化打多渠道包,Android批量打包提速

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

  4. mime中间件

    mime中间件Demo,里面用到的有 1.path模块 //引入模块 var path=require('path'); 2.extname方法 //获取文件的扩展名 var extname=path ...

  5. 【题解】洛谷P1120 小木棍(搜索+剪枝+卡常)

    洛谷P1120:https://www.luogu.org/problemnew/show/P1120 思路 明显是搜索题嘛 但是这数据增强不是一星半点呐 我们需要N多的剪枝 PS:需要先删去超出50 ...

  6. HDU 1009 FatMouse' Trade(简单贪心 物品可分割的背包问题)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1009 FatMouse' Trade Time Limit: 2000/1000 MS (Java/O ...

  7. Learning by doing——获黄色领骑衫之感

    获奖感言 能拿到这件黄色的领骑衫,心里真的非常高兴.仔细看了一下,扣子.领子.各种图案各种细节十分精致.可以说这件领骑衫既有纪念意义,又有实用意义,真的很棒. 背后的故事 其实开始接触博客的时候,我是 ...

  8. GPIO 配置示例

    概述:学习STM32的GPIO configration /********************************************************************** ...

  9. Jquery获取select标签的值、文本方式

    <script> function add(){            var prop_name=$("#prop").find("option:selec ...

  10. 浮动产生的高度坍塌解决方法以及使用siblings()方法获取同级元素

    高度坍塌:如果一个没有设置高度div里的元素都是浮动元素,这个时候就可能产生高度坍塌,因为div的高度都是普通元素撑起来的,div里的元素浮动之后,元素就会脱离文档流,所以父级的div高度就可能为零, ...