English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C 标准库的 float.h 头文件包含了一组与浮点值相关的依赖于平台的常量。这些常量是由 ANSI C 提出的,这让程序更具有可移植性。在讲解这些常量之前,最好先弄清楚浮点数是由下面四个元素组成的:
组件 | 组件描述 |
---|---|
S | 符号 ( +/- ) |
b | 指数表示的基数,2 表示二进制,10 表示十进制,16 表示十六进制,等等... |
e | 指数,一个介于最小值 emin 和最大值 emax 之间的整数。 |
p | 精度,基数 b 的有效位数 |
基于以上 4 组成部分,一个浮点数的值如下:
flotante-point = ( S ) p x be
o}}
flotante-punto = (+/-) precisión x baseexponente
Los siguientes valores son específicos de la implementación y se definen mediante la instrucción #define, estos valores no deben ser inferiores a los valores dados a continuación. Tenga en cuenta que todos los ejemplos FLT se refieren al tipo float, DBL al tipo double y LDBL al tipo long double.
macro | descripción |
---|---|
FLT_ROUNDS | Define el modo de redondeo de la adición de punto flotante, que puede ser cualquier uno de los siguientes valores:
|
FLT_RADIX 2 | Esta macro define el radix de la representación del exponente. Base 2 representa en binario, base 10 representa en decimal, base 16 representa en hexadecimal. |
FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG | Estas macros definen el número de dígitos en el radix FLT_RADIX. |
FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 | Estas macros definen el valor máximo de número decimal que no cambiará después de redondear (base 10)。 |
FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP | Estas macros definen el valor entero más pequeño negativo del exponente cuando el基数 es FLT_RADIX. |
FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 | Estas macros definen el基数 10 es el valor entero más pequeño negativo del exponente. |
FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP | Estas macros definen el valor entero máximo del exponente cuando el基数 es FLT_RADIX. |
FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 | Estas macros definen el基数 10 es el valor entero máximo del exponente. |
FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 | Estas macros definen el valor más grande de punto flotante finito. |
FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 | Estas macros definen el número más pequeño de dígitos significativos que puede representar. |
FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 | Estas macros definen el valor más pequeño de punto flotante. |
El siguiente ejemplo muestra el uso de algunas constantes definidas en el archivo float.h.
#include <stdio.h> #include <float.h> int main() { printf("el valor más grande de float = %.10e\n", FLT_MAX); printf("el valor más pequeño de float = %.10e\n", FLT_MIN); printf("El número de dígitos = %.10e\n", FLT_MANT_DIG); }
Vamos a compilar y ejecutar el programa anterior, lo que producirá el siguiente resultado:
El valor máximo de float = 3.4028234664e+38 El valor mínimo de float = 1.1754943508e-38 El número de dígitos de number = 7.2996655210e-312