Programare C

Setarea preciziei zecimale în limbajul C

Setarea preciziei zecimale în limbajul C

Acest articol vă va arăta cum să setați precizia zecimală în limbajul de programare C. În primul rând, vom defini precizia și apoi vom analiza mai multe exemple pentru a arăta cum să setați precizia zecimală în programarea C.

Precizie zecimală în C

Variabila de tip întreg este utilizată în mod normal pentru a menține numărul întreg și variabila de tip float pentru a deține numerele reale cu părți fracționate, de exemplu, 2.449561 sau -1.0587. Precizia determină acuratețea numerelor reale și este notată cu punctul (.) simbol. Exactitatea sau acuratețea numerelor reale este indicată de numărul de cifre după punctul zecimal. Deci, precizie înseamnă numărul de cifre menționat după punctul zecimal din numărul plutitor. De exemplu, numărul 2.449561 are precizie șase și -1.058 are precizie trei.

Conform reprezentării IEEE-754 cu virgulă mobilă de precizie simplă, există un total de 32 de biți pentru a stoca numărul real. Dintre cei 32 de biți, cel mai semnificativ bit este utilizat ca bit de semn, următorii 8 biți sunt folosiți ca exponent, iar următorii 23 de biți sunt folosiți ca fracție.

În cazul reprezentării IEEE-754 cu virgulă dublă de precizie, există un total de 64 de biți pentru a stoca numărul real. Dintre cei 64 de biți, cel mai semnificativ bit este utilizat ca bit de semn, următorii 11 biți sunt folosiți ca exponent, iar următorii 52 de biți sunt folosiți ca fracție.

Cu toate acestea, atunci când tipăriți numerele reale, este necesar să specificați precizia (cu alte cuvinte, acuratețea) numărului real. Dacă precizia nu este specificată, va fi luată în considerare precizia implicită, i.e., șase cifre zecimale după punctul zecimal. În exemplele următoare, vă vom arăta cum să specificați precizia atunci când tipăriți numere în virgulă mobilă în limbajul de programare C.

Exemple

Acum, că aveți o înțelegere de bază a preciziei, să ne uităm la câteva exemple:

    1. Precizie implicită pentru float
    2. Precizie implicită pentru dublu
    3. Setați precizia pentru plutitor
    4. Setați precizia pentru dublu

Exemplul 1: Precizie implicită pentru Float

Acest exemplu arată că precizia implicită este setată la șase cifre după punctul zecimal. Am inițializat o variabilă float cu valoarea 2.7 și a tipărit-o fără a specifica în mod explicit precizia.

În acest caz, setarea implicită de precizie va asigura imprimarea a șase cifre după punctul zecimal.

#include
int main ()

plutitor f = 2.7;
printf ("\ nValoarea lui f =% f \ n", f);
printf ("Dimensiunea float =% ld \ n", sizeof (float));
retur 0;

Exemplul 2: Precizie implicită pentru Double

În acest exemplu, veți vedea că precizia implicită este setată la șase cifre după punctul zecimal pentru variabilele de tip dublu. Am inițializat o variabilă dublă, i.e., d, cu valoarea 2.7 și l-a tipărit fără a specifica precizia. În acest caz, setarea implicită de precizie va asigura imprimarea a șase cifre după punctul zecimal.

#include
int main ()

dublu d = 2.7;
printf ("\ nValoarea lui d =% lf \ n", d);
printf ("Dimensiunea dublu =% ld \ n", dimensiunea (dublu));
retur 0;

Exemplul 3: setați precizia pentru plutitor

Acum, vă vom arăta cum să setați precizia pentru valorile flotante. Am inițializat o variabilă float, i.e., f, cu valoarea 2.7 și l-a tipărit cu diverse setări de precizie. Când menționăm „% 0.4f ”în declarația printf, aceasta indică faptul că suntem interesați să tipărim patru cifre după punctul zecimal.

#include
int main ()

plutitor f = 2.7;
/ * set precizie pentru variabila float * /
printf ("\ nValoarea lui f (precizie = 0.1) =% 0.1f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.2) =% 0.2f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.3) =% 0.3f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.4) =% 0.4f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.22) =% 0.22f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.23) =% 0.23f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.24) =% 0.24f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.25) =% 0.25f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.40) =% 0.40f \ n ", f);
printf ("Dimensiunea float =% ld \ n", sizeof (float));
retur 0;

Exemplul 4: setați precizia pentru dublu

În acest exemplu, vom vedea cum se setează precizia pentru valori duble. Am inițializat o variabilă dublă, i.e., d, cu valoarea 2.7 și l-a tipărit cu diverse setări de precizie. Când menționăm „% 0.52f ”în declarația printf, aceasta indică faptul că suntem interesați să tipărim 52 de cifre după punctul zecimal.

#include
int main ()

plutitor f = 2.7;
/ * set precizie pentru variabila float * /
printf ("\ nValoarea lui f (precizie = 0.1) =% 0.1f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.2) =% 0.2f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.3) =% 0.3f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.4) =% 0.4f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.22) =% 0.22f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.23) =% 0.23f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.24) =% 0.24f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.25) =% 0.25f \ n ", f);
printf ("\ nValoarea lui f (precizie = 0.40) =% 0.40f \ n ", f);
printf ("Dimensiunea float =% ld \ n", sizeof (float));
retur 0;

Concluzie

Precizia este un factor foarte important pentru reprezentarea unui număr real cu o precizie adecvată. Limbajul de programare c oferă mecanismul pentru a controla acuratețea sau exactitatea unui număr real. Cu toate acestea, nu putem schimba precizia reală a numărului real. De exemplu, partea fracțională a unui număr cu virgulă mobilă de precizie unică pe 32 de biți este reprezentată de 23 de biți, iar acest lucru este fix; nu putem schimba acest lucru pentru un anumit sistem. Putem decide câtă precizie dorim setând precizia dorită a numărului real. Dacă avem nevoie de mai multă acuratețe, putem folosi întotdeauna numărul în virgulă mobilă cu precizie dublă pe 64 de biți.

Cele mai bune jocuri de linie de comandă pentru Linux
Linia de comandă nu este doar cel mai mare aliat al tău când folosești Linux - poate fi și sursa de divertisment, deoarece poți să o folosești pentru ...
Best Gamepad Mapping Apps for Linux
If you like to play games on Linux with a gamepad instead of a typical keyboard and mouse input system, there are some useful apps for you. Many PC ga...
Instrumente utile pentru jucătorii Linux
Dacă vă place să jucați jocuri pe Linux, este posibil să fi folosit aplicații și utilitare precum Wine, Lutris și OBS Studio pentru a îmbunătăți exper...