# C 標準庫 - <float.h>
## 簡介
C 標準庫的 **float.h** 頭文件包含了一組與浮點值相關的依賴于平臺的常量。這些常量是由 ANSI C 提出的,這讓程序更具有可移植性。在講解這些常量之前,最好先弄清楚浮點數是由下面四個元素組成的:
| 組件 | 組件描述 |
| --- | --- |
| S | 符號 ( +/- ) |
| b | 指數表示的基數,2 表示二進制,10 表示十進制,16 表示十六進制,等等... |
| e | 指數,一個介于最小值 **e<sub>min</sub>** 和最大值 **e<sub>max</sub>** 之間的整數。 |
| p | 精度,基數 b 的有效位數 |
基于以上 4 個組成部分,一個浮點數的值如下:
```
floating-point = ( S ) p x b<sup>e</sup>
或
floating-point = (+/-) precision x base<sup>exponent</sup>
```
## 庫宏
下面的值是特定實現的,且是通過 #define 指令來定義的,這些值都不得低于下邊所給出的值。請注意,所有的實例 FLT 是指類型 float,DBL 是指類型 double,LDBL 是指類型 long double。
| 宏 | 描述 |
| --- | --- |
| `FLT_ROUNDS` | 定義浮點加法的舍入模式,它可以是下列任何一個值: -1 - 無法確定 0 - 趨向于零 1 - 去最近的值 2 - 趨向于正無窮 3 - 趨向于負無窮 |
| `FLT_RADIX` `2` | 這個宏定義了指數表示的基數。基數 2 表示二進制,基數 10 表示十進制,基數 16 表示十六進制。 |
| `FLT_MANT_DIG` `DBL_MANT_DIG` `LDBL_MANT_DIG` | 這些宏定義了 FLT_RADIX 基數中的位數。 |
| `FLT_DIG` `6` `DBL_DIG` `10` `LDBL_DIG` `10` | 這些宏定義了舍入后不會改變表示的十進制數字的最大值(基數 10)。 |
| `FLT_MIN_EXP` `DBL_MIN_EXP` `LDBL_MIN_EXP` | 這些宏定義了基數為 FLT_RADIX 時的指數的最小負整數值。 |
| `FLT_MIN_10_EXP` `-37` `DBL_MIN_10_EXP` `-37` `LDBL_MIN_10_EXP` `-37` | 這些宏定義了基數為 10 時的指數的最小負整數值。 |
| `FLT_MAX_EXP` `DBL_MAX_EXP` `LDBL_MAX_EXP` | 這些宏定義了基數為 FLT_RADIX 時的指數的最大整數值。 |
| `FLT_MAX_10_EXP` `+37` `DBL_MAX_10_EXP` `+37` `LDBL_MAX_10_EXP` `+37` | 這些宏定義了基數為 10 時的指數的最大整數值。 |
| `FLT_MAX` `1E+37` `DBL_MAX` `1E+37` `LDBL_MAX` `1E+37` | 這些宏定義最大的有限浮點值。 |
| `FLT_EPSILON` `1E-5` `DBL_EPSILON` `1E-9` `LDBL_EPSILON` `1E-9` | 這些宏定義了可表示的最小有效數字。 |
| `FLT_MIN` `1E-37` `DBL_MIN` `1E-37` `LDBL_MIN` `1E-37` | 這些宏定義了最小的浮點值。 |
## 實例
下面的實例演示了 float.h 文件中定義的一些常量的使用。
```
#include <stdio.h>
#include <float.h>
int main()
{
printf("The maximum value of float = %.10e\n", FLT_MAX);
printf("The minimum value of float = %.10e\n", FLT_MIN);
printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}
```
讓我們編譯和運行上面的程序,這將產生下列結果:
```
The maximum value of float = 3.4028234664e+38
The minimum value of float = 1.1754943508e-38
The number of digits in the number = 7.2996655210e-312
```
- C語言教程
- C 簡介
- C 環境設置
- C 程序結構
- C 基本語法
- C 數據類型
- C 變量
- C 常量
- C 存儲類
- C 運算符
- C 判斷
- C 循環
- C 函數
- C 作用域規則
- C 數組
- C 指針
- C 字符串
- C 結構體
- C 共用體
- C 位域
- C typedef
- C 輸入 & 輸出
- C 文件讀寫
- C 預處理器
- C 頭文件
- C 強制類型轉換
- C 錯誤處理
- C 遞歸
- C 可變參數
- C 內存管理
- C 命令行參數
- C語言參考
- C 標準庫 - <assert.h>
- C 庫宏 - assert()
- C 標準庫 - <ctype.h>
- C 庫函數 - isalnum()
- C 庫函數 - isalpha()
- C 庫函數 - iscntrl()
- C 庫函數 - isdigit()
- C 庫函數 - isgraph()
- C 庫函數 - islower()
- C 庫函數 - isprint()
- C 庫函數 - ispunct()
- C 庫函數 - isspace()
- C 庫函數 - isupper()
- C 庫函數 - isxdigit()
- C 標準庫 - <errno.h>
- C 庫宏 - errno
- C 庫宏 - EDOM
- C 庫宏 - ERANGE
- C 標準庫 - <float.h>
- C 標準庫 - <limits.h>
- C 標準庫 - <locale.h>
- C 庫函數 - setlocale()
- C 庫函數 - localeconv()
- C 標準庫 - <math.h>
- C 庫函數 - acos()
- C 庫函數 - asin()
- C 庫函數 - atan()
- C 庫函數 - atan2()
- C 庫函數 - cos()
- C 庫函數 - cosh()
- C 庫函數 - sin()
- C 庫函數 - sinh()
- C 庫函數 - tanh()
- C 庫函數 - exp()
- C 庫函數 - frexp()
- C 庫函數 - ldexp()
- C 庫函數 - log()
- C 庫函數 - log10()
- C 庫函數 - modf()
- C 庫函數 - pow()
- C 庫函數 - sqrt()
- C 庫函數 - ceil()
- C 庫函數 - fabs()
- C 庫函數 - floor()
- C 庫函數 - fmod()
- C 標準庫 - <setjmp.h>
- C 庫宏 - setjmp()
- C 庫函數 - longjmp()
- C 標準庫 - <signal.h>
- C 庫函數 - signal()
- C 庫函數 - raise()
- C 標準庫 - <stdarg.h>
- C 庫宏 - va_start()
- C 庫宏 - va_arg()
- C 庫宏 - va_end()
- C 標準庫 - <stddef.h>
- C 庫宏 - NULL
- C 庫宏 - offsetof()
- C 標準庫 - <stdio.h>
- C 庫函數 - fclose()
- C 庫函數 - clearerr()
- C 庫函數 - feof()
- C 庫函數 - ferror()
- C 庫函數 - fflush()
- C 庫函數 - fgetpos()
- C 庫函數 - fopen()
- C 庫函數 - fread()
- C 庫函數 - freopen()
- C 庫函數 - fseek()
- C 庫函數 - fsetpos()
- C 庫函數 - ftell()
- C 庫函數 - fwrite()
- C 庫函數 - remove()
- C 庫函數 - rename()
- C 庫函數 - rewind()
- C 庫函數 - setbuf()
- C 庫函數 - tmpfile()
- C 庫函數 - tmpnam()
- C 庫函數 - fprintf()
- C 庫函數 - printf()
- C 庫函數 - sprintf()
- C 庫函數 - vfprintf()
- C 庫函數 - vprintf()
- C 庫函數 - vsprintf()
- C 庫函數 - fscanf()
- C 庫函數 - scanf()
- C 庫函數 - sscanf()
- C 庫函數 - fgetc()
- C 庫函數 - fgets()
- C 庫函數 - fputc()
- C 庫函數 - fputs()
- C 庫函數 - getc()
- C 庫函數 - getchar()
- C 庫函數 - gets()
- C 庫函數 - putc()
- C 庫函數 - putchar()
- C 庫函數 - puts()
- C 庫函數 - ungetc()
- C 庫函數 - perror()
- C 標準庫 - <stdlib.h>
- C 庫函數 - atof()
- C 庫函數 - atoi()
- C 庫函數 - atol()
- C 庫函數 - strtod()
- C 庫函數 - strtol()
- C 庫函數 - strtoul()
- C 庫函數 - calloc()
- C 庫函數 - free()
- C 庫函數 - malloc()
- C 庫函數 - realloc()
- C 庫函數 - abort()
- C 庫函數 - atexit()
- C 庫函數 - exit()
- C 庫函數 - getenv()
- C 庫函數 - system()
- C 庫函數 - bsearch()
- C 庫函數 - qsort()
- C 庫函數 - abs()
- C 庫函數 - div()
- C 庫函數 - labs()
- C 庫函數 - ldiv()
- C 庫函數 - rand()
- C 庫函數 - srand()
- C 庫函數 - mblen()
- C 庫函數 - mbstowcs()
- C 庫函數 - mbtowc()
- C 庫函數 - wcstombs()
- C 庫函數 - wctomb()
- C 標準庫 - <string.h>
- C 庫函數 - memchr()
- C 庫函數 - memcmp()
- C 庫函數 - memcpy()
- C 庫函數 - memmove()
- C 庫函數 - memset()
- C 庫函數 - strcat()
- C 庫函數 - strncat()
- C 庫函數 - strchr()
- C 庫函數 - strcmp()
- C 庫函數 - strncmp()
- C 庫函數 - strcoll()
- C 庫函數 - strcpy()
- C 庫函數 - strncpy()
- C 庫函數 - strcspn()
- C 庫函數 - strerror()
- C 庫函數 - strlen()
- C 庫函數 - strpbrk()
- C 庫函數 - strrchr()
- C 庫函數 - strspn()
- C 庫函數 - strstr()
- C 庫函數 - strtok()
- C 庫函數 - strxfrm()
- C 標準庫 - <time.h>
- C 庫函數 - asctime()
- C 庫函數 - clock()
- C 庫函數 - ctime()
- C 庫函數 - difftime()
- C 庫函數 - gmtime()
- C 庫函數 - localtime()
- C 庫函數 - mktime()
- C 庫函數 - strftime()
- C 庫函數 - time()
- 免責聲明