<cfloat> (float.h)
头文件:
<cfloat> (float.h)
浮点类型的特性
这个头文件为特殊系统和编译器的实现描述了浮点类型的特征.
一个浮点数包含四个元素:
- 一个标志(a sign):正或负;
- 一个基数(a base):这表示一串不同的数字能够被一个个单一的数字所表示(2 就是二进制(binary),10就是十进制(decimal),16就是十六进制(hexadecimal)...);
- 一个有效数(a significand):这是一系列前面所谈到的基数的数字,在这一系列中数字的位数就是众所周知的精度;
- 一个指数(an exponent):它代表着有效数字的偏移量,用下面的方式影响着其值:
(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)的更多相关文章
- C 标准库系列之float.h
float.h 内部主要包含了一系列的浮点数宏.指明可移植程序必要的常量:浮点数格式一般为Spxbe;其中S表示+-:p表示底数.b表示基数如2.8.10.16等进制,e为指数标识E或e: 在一般情况 ...
- <limits.h>和<float.h>
头文件<limits.h>中定义了用于表示整类型大小的常量.以下所列的值是可接受的最小值,实际系统中可能有更大的值. CHAR_BIT char类型的位数 CHAR_MAX UCHAR_M ...
- <math.h>与<float.h>
(一) <math.h> <math.h>文件中已经定义了M_PI,如下所示,用户可以直接使用: //math.h........................ #if de ...
- Standard C 之 math.h和float.h
对于C Standard Library 可以参考:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ 或者 http://www.cplusplus.c ...
- C 标准库 - <float.h>
C 标准库 - <float.h> 简介 C 标准库的 float.h 头文件包含了一组与浮点值相关的依赖于平台的常量.这些常量是由 ANSI C 提出的,这让程序更具有可移植性.在讲解这 ...
- float.h
float.h 一背景知识 浮点算术非常复杂 很多小的处理器在硬件指令方面甚至不支持浮点算术 其他的则需要一个独立的协处理器来处理这种运算 只有最复杂的计算机才在硬件指令集中支持浮点运算 ...
- <float.h>中DBL_TRUE_MIN的定义和作用
搬运自己2016年11月22日于SegmentFault发表的文章.链接:https://segmentfault.com/a/1190000007565915 在学习C Prime Plus的过程中 ...
- C 标准库系列之limits.h
limits.h 类似于float.h,其定义了一些列类型的值的范围.限制值,也就是说该类型的值不可以大于该上界或者小于该类型值的下界: glibc中宏定义了一下的值: # define MB_LEN ...
- float 浮点数与零值0比较大小
float x: 千万不要写x==0; 写出float x 与“零值”比较的if语句——一道面试题分析 写出float x 与“零值”比较的if语句 请写出 float x 与“零值”比较的 if ...
随机推荐
- love paradise - 陈慧琳
love paradise - 陈慧琳 You're always on my mind All day just all the time You're everything to me Brigh ...
- UCOS阅读问题累积
1.#ifdef __cplusplus extern "C" { #endif 作用: 一般用于将C++代码以标准C形式输出(即以C的形式被调用),这是因为C++虽然常被认 ...
- 创建Cookie抛出异常:java.lang.IllegalArgumentException: Control character in cookie value
调用Cookie对象的构造函数可以创建Cookie.Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值. 名字和值都不能包含空白字符以及下列字符:[ ] ( ) < ...
- JavaScript面向对象(封装)
阮一峰的网络日志 1.生成实例对象的原始模式 var People = { name : '', age : '' } 根据这个原型对象生成两个实例对象 var people1 = {}; peopl ...
- hdu_4336_Card Collector
In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, fo ...
- Mysql 几种常见的插入 Insert into,Replace Into,Insert ignore
简要说下三者的区别:insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错. replace into 如果表中存在主键相同的数据则根据主键修改当前主键的数据,反之则插入(存在就 ...
- 开源框架:DBUtils使用详解
一.先熟悉DBUtils的API: 简介:DbUtils是一个为简化JDBC操作的小类库. (一)整个dbutils总共才3个包: 1.包org.apache.commons.dbutils 接 ...
- 一、Vue项目构建
Attention:以下内容为Mac机上运行,windows可能有所偏差- Step1 打开终端,键入npm install -g vue-cli,使用vue-cli脚手架搭建vue项目能省很多事儿- ...
- node 版本升级,版本管理,版本切换
查看node版本 node -v 升级步骤 1,清除node缓存 sudo npm cache clean -f 2,安装n模块 sudo npm install -g n 3,升级到稳定版本 sud ...
- Mysql 关于处理NULL值的相关函数和操作符
操作符 <=> NULL-safe equal. This operator performs an equality comparison like the = operator, bu ...