Impostazione della precisione decimale in lingua C

Impostazione della precisione decimale in lingua C

Questo articolo ti mostrerà come impostare la precisione decimale nel linguaggio di programmazione C. Innanzitutto, definiremo la precisione e poi esamineremo più esempi per mostrare come impostare la precisione decimale nella programmazione C.

Precisione decimale in C

La variabile di tipo intero viene normalmente utilizzata per contenere l'intero numero e la variabile del tipo di galleggiante per contenere i numeri reali con parti frazionarie, ad esempio 2.449561 o -1.0587. La precisione determina l'accuratezza dei numeri reali ed è indicata dal punto (.) simbolo. L'esattezza o l'accuratezza dei numeri reali è indicata dal numero di cifre dopo il punto decimale. Quindi, precisione significa il numero di cifre menzionate dopo il punto decimale nel numero di galleggiante. Ad esempio, il numero 2.449561 ha precisione sei e -1.058 ha precisione tre.

Secondo la rappresentazione di punto galleggiante IEEE-754 a singola precisione, ci sono un totale di 32 bit per archiviare il numero reale. Dei 32 bit, il bit più significativo viene utilizzato come bit di segno, i seguenti 8 bit vengono utilizzati come esponente e i seguenti 23 bit vengono utilizzati come frazione.

Nel caso della rappresentazione del punto galleggiante a doppia precisione IEEE-754, ci sono un totale di 64 bit per archiviare il numero reale. Dei 64 bit, il bit più significativo viene utilizzato come bit di segno, i seguenti 11 bit vengono utilizzati come esponente e i seguenti 52 bit vengono utilizzati come frazione.

Tuttavia, durante la stampa dei numeri reali, è necessario specificare la precisione (in altre parole, precisione) del numero reale. Se la precisione non viene specificata, verrà considerata la precisione predefinita, i.e., sei cifre decimali dopo il punto decimale. Nei seguenti esempi, ti mostreremo come specificare la precisione durante la stampa di numeri a punto mobile nel linguaggio di programmazione C.

Esempi

Ora che hai una comprensione di base della precisione, guardiamo un paio di esempi:

    1. Precisione predefinita per galleggiante
    2. Precisione predefinita per il doppio
    3. Imposta la precisione per il galleggiante
    4. Imposta la precisione per il doppio

Esempio 1: precisione predefinita per il galleggiante

Questo esempio mostra che la precisione predefinita è impostata su sei cifre dopo il punto decimale. Abbiamo inizializzato una variabile float con il valore 2.7 e stampato senza specificare esplicitamente la precisione.

In questo caso, l'impostazione di precisione predefinita garantirà che siano stampate sei cifre dopo il punto decimale.

#includere
int main ()

fluttuare f = 2.7;
printf ("\ nvalue di f = %f \ n", f);
printf ("dimensione di float = %ld \ n", sizeof (float));
restituzione 0;

Esempio 2: precisione predefinita per il doppio

In questo esempio, vedrai che la precisione predefinita è impostata su sei cifre dopo il punto decimale per le variabili a doppio tipo. Abbiamo inizializzato una doppia variabile, i.e., d, con il valore 2.7 e stampato senza specificare la precisione. In questo caso, l'impostazione di precisione predefinita garantirà che siano stampate sei cifre dopo il punto decimale.

#includere
int main ()

doppio d = 2.7;
printf ("\ nvalue di d = %lf \ n", d);
printf ("dimensione di doppio = %ld \ n", sizeof (doppio));
restituzione 0;

Esempio 3: impostare la precisione per il galleggiante

Ora ti mostreremo come impostare la precisione per i valori float. Abbiamo inizializzato una variabile float, i.e., f, con il valore 2.7 e stampato con varie impostazioni di precisione. Quando menzioniamo “%0.4f "nell'istruzione Printf, questo indica che siamo interessati a stampare quattro cifre dopo il punto decimale.

#includere
int main ()

fluttuare f = 2.7;
/ * Imposta precisione per la variabile float */
printf ("\ nvalue di f (precisione = 0.1) = %0.1f \ n ", f);
printf ("\ nvalue di f (precisione = 0.2) = %0.2f \ n ", f);
printf ("\ nvalue di f (precisione = 0.3) = %0.3f \ n ", f);
printf ("\ nvalue di f (precisione = 0.4) = %0.4f \ n ", f);
printf ("\ nvalue di f (precisione = 0.22) = %0.22f \ n ", f);
printf ("\ nvalue di f (precisione = 0.23) = %0.23f \ n ", f);
printf ("\ nvalue di f (precisione = 0.24) = %0.24f \ n ", f);
printf ("\ nvalue di f (precisione = 0.25) = %0.25f \ n ", f);
printf ("\ nvalue di f (precisione = 0.40) = %0.40f \ n ", f);
printf ("dimensione di float = %ld \ n", sizeof (float));
restituzione 0;

Esempio 4: impostare la precisione per il doppio

In questo esempio, vedremo come impostare la precisione per i doppi valori. Abbiamo inizializzato una doppia variabile, i.e., d, con il valore 2.7 e stampato con varie impostazioni di precisione. Quando menzioniamo “%0.52f "nell'istruzione Printf, questo indica che siamo interessati a stampare 52 cifre dopo il punto decimale.

#includere
int main ()

fluttuare f = 2.7;
/ * Imposta precisione per la variabile float */
printf ("\ nvalue di f (precisione = 0.1) = %0.1f \ n ", f);
printf ("\ nvalue di f (precisione = 0.2) = %0.2f \ n ", f);
printf ("\ nvalue di f (precisione = 0.3) = %0.3f \ n ", f);
printf ("\ nvalue di f (precisione = 0.4) = %0.4f \ n ", f);
printf ("\ nvalue di f (precisione = 0.22) = %0.22f \ n ", f);
printf ("\ nvalue di f (precisione = 0.23) = %0.23f \ n ", f);
printf ("\ nvalue di f (precisione = 0.24) = %0.24f \ n ", f);
printf ("\ nvalue di f (precisione = 0.25) = %0.25f \ n ", f);
printf ("\ nvalue di f (precisione = 0.40) = %0.40f \ n ", f);
printf ("dimensione di float = %ld \ n", sizeof (float));
restituzione 0;

Conclusione

La precisione è un fattore molto importante per rappresentare un numero reale con un'adeguata precisione. Il linguaggio di programmazione C fornisce il meccanismo per controllare l'accuratezza o l'esattezza di un numero reale. Tuttavia, non possiamo modificare la precisione effettiva del numero reale. Ad esempio, la parte della frazione di un numero a virgola mobile a precisione singola a 32 bit è rappresentata da 23 bit, e questo è fisso; Non possiamo cambiarlo per un particolare sistema. Possiamo solo decidere quanta precisione vogliamo impostando la precisione desiderata del numero reale. Se abbiamo bisogno di maggiore precisione, possiamo sempre utilizzare il numero a doppia precisione a 64 bit.