C Programiranje

Nastavitev decimalne natančnosti v jeziku C

Nastavitev decimalne natančnosti v jeziku C

Ta članek vam bo pokazal, kako nastavite decimalno natančnost v programskem jeziku C. Najprej bomo opredelili natančnost, nato pa si bomo ogledali več primerov, da pokažemo, kako nastaviti natančnost desetikov pri programiranju C.

Decimalna natančnost v C

Spremenljivka celoštevilčnega tipa se običajno uporablja za zadrževanje celotnega števila, spremenljivka tipa float pa za shranjevanje realnih števil z delnimi deli, na primer 2.449561 ali -1.0587. Natančnost določa natančnost realnih števil in je označena s piko (.). Natančnost ali natančnost realnih števil je označena s številom števk za decimalno vejico. Torej natančnost pomeni število števk, omenjenih za decimalno vejico v številu plovcev. Na primer številka 2.449561 ima natančnost šest in -1.058 ima natančnost tri.

V skladu z IEEE-754 enojno natančno predstavitvijo s plavajočo vejico je skupno 32 bitov za shranjevanje dejanskega števila. Od 32 bitov se najpomembnejši bit uporablja kot znakovni bit, naslednjih 8 bitov se uporablja kot eksponent, naslednjih 23 bitov pa kot ulomek.

V primeru dvojno natančne predstavitve s plavajočo vejico IEEE-754 je za shranjevanje dejanskega števila skupaj 64 bitov. Od 64 bitov se najpomembnejši bit uporablja kot znakovni bit, naslednjih 11 bitov se uporablja kot eksponent, naslednjih 52 bitov pa kot ulomek.

Vendar je treba pri tiskanju realnih števil določiti natančnost (z drugimi besedami, natančnost) dejanskega števila. Če natančnost ni določena, bo upoštevana privzeta natančnost, tj.e., šest decimalnih mest za decimalno vejico. V naslednjih primerih vam bomo pokazali, kako določite natančnost pri tiskanju številk s plavajočo vejico v programskem jeziku C.

Primeri

Zdaj, ko dobro razumete natančnost, si oglejmo nekaj primerov:

    1. Privzeta natančnost za float
    2. Privzeta natančnost za dvojno
    3. Nastavite natančnost za plovec
    4. Nastavite natančnost za dvojno

Primer 1: Privzeta natančnost za float

Ta primer kaže, da je privzeta natančnost nastavljena na šest mest za decimalno vejico. Inicializirali smo spremenljivko float z vrednostjo 2.7 in ga natisnil, ne da bi izrecno navedel natančnost.

V tem primeru bo privzeta nastavitev natančnosti zagotovila, da se natisne šest števk za decimalno vejico.

#include
int main ()

float f = 2.7;
printf ("\ nVrednost f =% f \ n", f);
printf ("Velikost float =% ld \ n", sizeof (float));
vrnitev 0;

Primer 2: Privzeta natančnost za Double

V tem primeru boste videli, da je privzeta natančnost nastavljena na šest mest za decimalno vejico za spremenljivke dvojnega tipa. Inicializirali smo dvojno spremenljivko, tj.e., d, z vrednostjo 2.7 in ga natisnil, ne da bi določil natančnost. V tem primeru bo privzeta nastavitev natančnosti zagotovila, da se natisne šest števk za decimalno vejico.

#include
int main ()

dvojno d = 2.7;
printf ("\ nVrednost d =% lf \ n", d);
printf ("Velikost dvojnika =% ld \ n", velikost (dvojno));
vrnitev 0;

3. primer: nastavite natančnost za plovec

Zdaj vam bomo pokazali, kako nastaviti natančnost za float vrednosti. Inicializirali smo spremenljivko float, tj.e., f, z vrednostjo 2.7 in ga natisnil z različnimi natančnimi nastavitvami. Ko omenimo »% 0.4f "v izjavi printf pomeni, da nas zanima tiskanje štirih števk za decimalno vejico.

#include
int main ()

float f = 2.7;
/ * nastavi natančnost za float spremenljivko * /
printf ("\ nVrednost f (natančnost = 0.1) =% 0.1f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.2) =% 0.2f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.3) =% 0.3f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.4) =% 0.4f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.22) =% 0.22f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.23) =% 0.23f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.24) =% 0.24f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.25) =% 0.25f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.40) =% 0.40f \ n ", f);
printf ("Velikost float =% ld \ n", sizeof (float));
vrnitev 0;

4. primer: nastavite natančnost za dvojno

V tem primeru bomo videli, kako nastaviti natančnost za dvojne vrednosti. Inicializirali smo dvojno spremenljivko, tj.e., d, z vrednostjo 2.7 in ga natisnil z različnimi natančnimi nastavitvami. Ko omenimo »% 0.52f "v izjavi printf, to pomeni, da nas zanima tiskanje 52 števk za decimalno vejico.

#include
int main ()

float f = 2.7;
/ * nastavi natančnost za float spremenljivko * /
printf ("\ nVrednost f (natančnost = 0.1) =% 0.1f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.2) =% 0.2f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.3) =% 0.3f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.4) =% 0.4f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.22) =% 0.22f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.23) =% 0.23f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.24) =% 0.24f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.25) =% 0.25f \ n ", f);
printf ("\ nVrednost f (natančnost = 0.40) =% 0.40f \ n ", f);
printf ("Velikost float =% ld \ n", sizeof (float));
vrnitev 0;

Zaključek

Natančnost je zelo pomemben dejavnik za predstavitev realnega števila z ustrezno natančnostjo. Programski jezik c ponuja mehanizem za nadzor natančnosti ali natančnosti realnega števila. Vendar dejanske natančnosti dejanskega števila ne moremo spremeniti. Na primer, ulomek 32-bitnega števila s plavajočo vejico z eno natančnostjo predstavlja 23 bitov in je to fiksno; tega ne moremo spremeniti za določen sistem. Koliko natančnosti želimo, se lahko odločimo le z nastavitvijo želene natančnosti realnega števila. Če potrebujemo več natančnosti, lahko vedno uporabimo 64-bitno dvojno natančno številko s plavajočo vejico.

Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...
Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...