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

Corso di base del linguaggio C

Controllo di flusso del linguaggio C

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

Struttura del linguaggio C

File del linguaggio C

C altre

Manuale di riferimento del linguaggio C

Libreria standard <float.h> C

Manuale di riferimento della libreria C standard float.h Il file di intestazione contiene un insieme di costanti dipendenti dalla piattaforma relative ai valori a virgola mobile. Queste costanti sono state proposte da ANSI C, il che rende i programmi più portatili. Prima di spiegare queste costanti, è meglio capire che i numeri a virgola mobile sono composti da quattro elementi come segue:

ComponentiDescrizione dei componenti
Sil segno (+/-)
bl'esponente rappresenta la base, 2 rappresenta binario, 10 rappresenta decimale, 16 rappresenta esadecimale, ecc.
eesponente, un numero tra il minimo emin e il valore massimo emax tra interi.
pPrecisione, il numero di cifre significative della base b

Sulla base di questi 4 componenti, il valore di un numero a virgola mobile è il seguente:

il numero a virgola mobile = (S) p x be

o

il numero a virgola mobile = (+/-) precisione x baseesponente

Macro della libreria

I seguenti valori sono specifici dell'implementazione e sono definiti con l'istruzione #define, e tutti devono essere superiori ai valori indicati di seguito. Si prega di notare che tutti gli esempi FLT si riferiscono al tipo float, DBL al tipo double, LDBL al tipo long double.

MacroDescrizione
FLT_ROUNDSDefinire il modello di arrotondamento dell'addizione a virgola mobile, che può essere uno dei seguenti valori:
  • -1 -无法确定

  • 0 -趋向于零

  • 1 -去最近的值

  • 2 -趋向于正无穷

  • 3 -趋向于负无穷

FLT_RADIX 2Questa macro definisce la base dell'esponente. La base 2 rappresenta il binario, la base 10 rappresenta il decimale, la base 16 rappresenta l'esadecimale.

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

Queste macro definiscono il numero di cifre nel radix FLT_RADIX.

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

Queste macro definiscono il valore massimo del numero decimale rappresentabile senza cambiamenti di arrotondamento (base 10).

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

Queste macro definiscono il valore minimo intero negativo dell'esponente per base FLT_RADIX.

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

Queste macro definiscono il valore minimo intero negativo dell'esponente per base 10.

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

Queste macro definiscono il valore massimo intero dell'esponente per base FLT_RADIX.

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

Queste macro definiscono il valore massimo intero dell'esponente per base 10.

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

Queste macro definiscono il valore massimo del numero floating point finito.

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

Queste macro definiscono il numero minimo significativo rappresentabile.

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

Queste macro definiscono il valore minimo del numero floating point.

Esempio online

Ecco un esempio che dimostra l'uso di alcune costanti definite nel file float.h.

#include <stdio.h>
#include <float.h>
int main();
{
   printf("Il valore massimo di float = %.10e\n", FLT_MAX);
   printf("Il valore minimo di float = %.10e\n", FLT_MIN);
   printf("Il numero di cifre del numero = %.10e\n", FLT_MANT_DIG);
}

Compiliamo e eseguiamo il programma sopra, questo produrrà i seguenti risultati:

Il valore massimo di float = 3.4028234664e+38
Il valore minimo di float = 1.1754943508e-38
Il numero di cifre di number = 7.2996655210e-312