头文件:

<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. jenkins没安装git报错

    Jenkins新建项目中源码管理使用Git时遇到如下问题: 在安装jenkins服务器上查看一下git版本,可能没有安装git  也可能是git版本太低 [root@localhost nnnnn]# ...

  2. VS2017无法打开Razor视图文件

    VS2017一直卡顿就在扩展和更新里把没用的插件关闭了.导致后来一直NETCORE的Razor视图文件打不开 查了资料才知道需要依赖 ASP.NET Core Razor Language Servi ...

  3. Knowledge Point 20180305 Java程序员详述编码Unicode

    Unicode Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设 ...

  4. oracle使用DBMS_RANDOM包生成随机数据

    (一)DBMS_RANDOM包信息 DBMS_RANDOM包包含3个存储过程,4个函数,1个类型,一共8个模块,如下. SQL> desc dbms_random Element Type -- ...

  5. servlet,过滤器,监听器,拦截器的区别

    一.目录 1.概念 2.生命周期 3.职责 4.执行过程 二.内容 概念 1.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性, 可以动态生成web页面它 ...

  6. L2-001 紧急救援(dijkstra算法)

    题目: 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上.当其他城市 ...

  7. laravel 5.7 resources 本地化 简体中文

    使用方法: 新建目录[项目目录/resources/lang/zh] 按以下内容创建文件,并将内容复制到文件中 修改 config/app.php 'locale' => 'zh', 'fall ...

  8. Spring + Mybatis应该如何配置

    ### 1. MYBATIS简介 MYBATIS是持久层框架,大大的简化了持久层开发. 当使用MYBATIS框架时,开发人员不必再编写繁琐的JDBC代码,只需要定义好每个功能对应的抽象方法与需要执行的 ...

  9. 【Spark】Spark2.x版的新特性

    一.API 1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API ...

  10. FMX相关

    ListView的ItemAppearance的样式效果表: Navicat for 插入图片步骤: 如果最后一条记录的图片有问题,可以先插入下一条再导入图片.