C Ohjelmointi

Desimaalitarkkuuden asettaminen C-kielellä

Desimaalitarkkuuden asettaminen C-kielellä

Tässä artikkelissa kerrotaan, kuinka desimaalitarkkuus asetetaan C-ohjelmointikielellä. Ensin määritellään tarkkuus ja sitten tutkitaan useita esimerkkejä osoittamaan, kuinka desimaalitarkkuus asetetaan C-ohjelmoinnissa.

Desimaalitarkkuus C

Luku tyypin muuttujaa käytetään yleensä pitämään kokonaislukua ja float-tyyppistä muuttujaa pitämään reaaliluvut murto-osilla, esimerkiksi 2.449561 tai -1.0587. Tarkkuus määrittää reaalilukujen tarkkuuden ja sitä merkitään pisteellä (.) -symboli. Reaalilukujen tarkkuus tai tarkkuus ilmaistaan ​​desimaalipilkun jälkeisellä lukumäärällä. Tarkkuus tarkoittaa siis float-luvun desimaalipilkun jälkeen mainittua lukumäärää. Esimerkiksi numero 2.449561: n tarkkuus on kuusi ja -1.058: lla on kolme tarkkuutta.

IEEE-754: n yhden tarkkuuden liukulukuesityksen mukaisesti reaaliluvun tallentamiseen on yhteensä 32 bittiä. 32 bitistä merkittävintä bittiä käytetään merkkibitinä, seuraavia 8 bittiä käytetään eksponenttina ja seuraavia 23 bittiä käytetään murto-osana.

IEEE-754-kaksoistarkkuuden liukulukuesityksen tapauksessa reaaliluvun tallentamiseen on yhteensä 64 bittiä. 64 bitistä merkittävintä bittiä käytetään merkkibitinä, seuraavia 11 bittiä käytetään eksponenttina ja seuraavia 52 bittiä käytetään murto-osana.

Reaalilukuja tulostettaessa on kuitenkin tarpeen määrittää reaaliluvun tarkkuus (toisin sanoen tarkkuus). Jos tarkkuutta ei ole määritelty, oletustarkkuus otetaan huomioon, ts.e., kuusi desimaalin tarkkuudella desimaalin tarkkuudella. Seuraavissa esimerkeissä näytetään, kuinka tarkkuus määritetään, kun tulostetaan liukulukuja C-ohjelmointikielellä.

Esimerkkejä

Nyt kun sinulla on perustiedot tarkkuudesta, katsokaamme muutama esimerkki:

    1. Oletusarkkuus kellukkeelle
    2. Oletustarkkuus kaksinkertaiselle
    3. Aseta uimurin tarkkuus
    4. Aseta tarkkuus kaksinkertaiselle

Esimerkki 1: Kellukkeen oletustarkkuus

Tämä esimerkki osoittaa, että oletustarkkuus on asetettu kuuteen numeroon desimaalipilkun jälkeen. Olemme alustaneet kelluvan muuttujan arvolla 2.7 ja tulosti sen ilmoittamatta tarkkuutta.

Tässä tapauksessa tarkkuuden oletusasetus varmistaa, että kuusi numeroa desimaalin jälkeen tulostetaan.

#sisältää
int main ()

uimuri f = 2.7;
printf ("\ nArvon arvo f =% f \ n", f);
printf ("Kelluvan koko =% ld \ n", koko (kelluva));
paluu 0;

Esimerkki 2: Oletustarkkuus tuplalle

Tässä esimerkissä näet, että oletustarkkuus on asetettu kuuteen numeroon desimaalipilkun jälkeen kaksinkertaisen tyypin muuttujille. Olemme alustaneet kaksoismuuttujan, ts.e., d, arvolla 2.7 ja tulosti sen määrittelemättä tarkkuutta. Tässä tapauksessa tarkkuuden oletusasetus varmistaa, että kuusi numeroa desimaalin jälkeen tulostetaan.

#sisältää
int main ()

kaksinkertainen d = 2.7;
printf ("\ nArvon d =% lf \ n", d) arvo;
printf ("Tuplan koko =% ld \ n", koko (kaksinkertainen));
paluu 0;

Esimerkki 3: Aseta kelluvuuden tarkkuus

Nyt näytämme sinulle, kuinka asetetaan tarkkuus kelluville arvoille. Olemme alustaneet kelluvan muuttujan, ts.e., f arvolla 2.7, ja tulosti sen erilaisilla tarkkuusasetuksilla. Kun mainitaan ”% 0.4f ”printf-käskyssä tämä osoittaa, että olemme kiinnostuneita tulostamaan neljä numeroa desimaalipilkun jälkeen.

#sisältää
int main ()

uimuri f = 2.7;
/ * aseta tarkkuus kelluvalle muuttujalle * /
printf ("\ n f: n arvo (tarkkuus = 0.1) =% 0.1f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.2) =% 0.2f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.3) =% 0.3f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.4) =% 0.4f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.22) =% 0.22f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.23) =% 0.23f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.24) =% 0.24f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.25) =% 0.25f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.40) =% 0.40f \ n ", f);
printf ("Kelluvan koko =% ld \ n", koko (kelluva));
paluu 0;

Esimerkki 4: Aseta tarkkuus kaksinkertaiselle

Tässä esimerkissä näemme, kuinka kaksinkertaisten arvojen tarkkuus asetetaan. Olemme alustaneet kaksoismuuttujan, ts.e., d, arvolla 2.7 ja tulosti sen erilaisilla tarkkuusasetuksilla. Kun mainitaan ”% 0.52f ”printf-käskyssä tämä osoittaa, että olemme kiinnostuneita tulostamaan 52 numeroa desimaalipilkun jälkeen.

#sisältää
int main ()

uimuri f = 2.7;
/ * aseta tarkkuus kelluvalle muuttujalle * /
printf ("\ n f: n arvo (tarkkuus = 0.1) =% 0.1f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.2) =% 0.2f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.3) =% 0.3f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.4) =% 0.4f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.22) =% 0.22f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.23) =% 0.23f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.24) =% 0.24f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.25) =% 0.25f \ n ", f);
printf ("\ n f: n arvo (tarkkuus = 0.40) =% 0.40f \ n ", f);
printf ("Kelluvan koko =% ld \ n", koko (kelluva));
paluu 0;

Johtopäätös

Tarkkuus on erittäin tärkeä tekijä todellisen luvun edustamiseksi riittävän tarkasti. C-ohjelmointikieli tarjoaa mekanismin reaaliluvun tarkkuuden tai tarkkuuden hallitsemiseksi. Emme kuitenkaan voi muuttaa reaaliluvun todellista tarkkuutta. Esimerkiksi 32-bittisen yhden tarkkuuden liukulukuluvun murto-osaa edustaa 23 bittiä, ja tämä on kiinteä; emme voi muuttaa tätä tietylle järjestelmälle. Voimme päättää, kuinka paljon tarkkuutta haluamme asettamalla halutun tarkkuuden reaaliluvulle. Jos tarvitsemme enemmän tarkkuutta, voimme aina käyttää 64-bittistä kaksitarkkaa liukuluku.

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...