English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C 语言基础教程

C 语言流程控制

Funciones de C

Arreglos de C

Punteros de C

Cadenas de caracteres de C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

Biblioteca estándar <float.h> de C

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

macros de la biblioteca

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.

macrodescripción
FLT_ROUNDSDefine el modo de redondeo de la adición de punto flotante, que puede ser cualquier uno de los siguientes valores:
  • -1 - no se puede determinar

  • 0 - tiende a cero

  • 1 - redondea al valor más cercano

  • 2 - tiende a infinito positivo

  • 3 - tiende a infinito negativo

FLT_RADIX 2Esta 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.

Ejemplo en línea

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