<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 ...
随机推荐
- mongo删除、添加分片
MongoDB 分片的原理.搭建.应用 一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处 ...
- 【题解】洛谷P2296 [NOIP2014TG] 寻找道路(SPFA+DFS)
题目来源:洛谷P2296 思路 一开始看还以为是一道水题 虽然本来就挺水的 本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点 我们需要在一开始多建一个反向图 然后从终点DFS回去 把路径 ...
- HDU 1284 钱币兑换问题(普通型 数量无限的母函数)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1284 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) ...
- STM32之FSMC
FSMC全称“静态存储器控制器”. 使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线. (1)当存储数据设为8位时, ...
- ffmpeg 简单使用总结
FFMPEG 生成指定长度的空白音频: ffmpeg -f lavfi -i aevalsrc=0 -t seconds -q:a 9 -acodec libmp3lame out.mp3 FFMPE ...
- 360极速浏览器用ie8模式打开网页(360浏览器同理)
在访问年代久远的的网页时经常会遇到兼容性的问题,用360浏览器(或360极速浏览器)中通过设置可解决. 在360极速浏览器中分别依次选择:选项->高级设置->内核模式->内核切换设置 ...
- 关于Django中JsonResponse返回中文字典编码错误的解决方案
解决方案:JsonResponse(data, json_dumps_params={'ensure_ascii':False}) ! data是需要渲染的字典 def master(request) ...
- vuejs 预渲染插件 prerender-spa-plugin 生成多页面 -- SEO
前端vue等框架打包的项目一般为SPA应用,而单页面是不利于SEO的,现在的解决方案有两种: 1.SSR服务器渲染 了解服务器渲染请进,这里不做记录. 2.预渲染模式 这比服务端渲染要简单很多 ...
- git创建使用1https://blog.csdn.net/Hanani_Jia/article/details/77950594
这篇文章是我自己写的关于GitHub的内容,从我刚听到这个直到设置成功每一步都有详细的步骤来解释,其中有一些截图或者代码来自于网上. 首先,我先对GitHub来一个简单的介绍,GitHub有一个很强大 ...
- hadoop生态搭建(3节点)-12.rabbitmq配置
# 安装 需要相关包# ==================================================================node1 node2 node3 yum ...