Šis straipsnis parodys, kaip nustatyti dešimtainį tikslumą C programavimo kalba. Pirma, mes apibrėžsime tikslumą, tada mes išnagrinėsime kelis pavyzdžius, kad parodytume, kaip nustatyti dešimtainį tikslumą programuojant C.
Dešimtainis tikslumas C
Sveiko skaičiaus kintamasis paprastai naudojamas visam skaičiui laikyti, o „float“ tipo kintamasis - tikriesiems skaičiams su trupmeninėmis dalimis laikyti, pavyzdžiui, 2.449561 arba -1.0587. Tikslumas nustato tikrųjų skaičių tikslumą ir žymimas tašku (.) simbolis. Tikrųjų skaičių tikslumas arba tikslumas nurodomas skaitmenų skaičiumi po kablelio. Taigi, tikslumas reiškia skaitmenų skaičių, minimą po kablelio plūduriuojančiame skaičiuje. Pavyzdžiui, skaičius 2.449561 turi šeštą tikslumą ir -1.058 turi tris tikslumus.
Pagal IEEE-754 vieno tikslumo slankiojo kablelio vaizdą iš viso yra 32 bitai, kad būtų išsaugotas tikrasis skaičius. Iš 32 bitų reikšmingiausias bitas naudojamas kaip ženklo bitas, šie 8 bitai naudojami kaip rodiklis, o šie 23 bitai naudojami kaip dalis.
IEEE-754 dvigubo tikslumo slankiojo kablelio vaizdavimo atveju iš viso yra 64 bitai, kad būtų išsaugotas tikrasis skaičius. Iš 64 bitų reikšmingiausias bitas naudojamas kaip ženklo bitas, šie 11 bitų naudojami kaip rodiklis, o šie 52 bitai naudojami kaip dalis.
Tačiau spausdinant tikruosius skaičius būtina nurodyti tikrojo skaičiaus tikslumą (kitaip tariant, tikslumą). Jei tikslumas nenurodytas, bus atsižvelgiama į numatytąjį tikslumą, t.e., šeši skaitmenys po kablelio po kablelio. Toliau pateiktuose pavyzdžiuose parodysime, kaip nurodyti tikslumą spausdinant slankiojo kablelio skaičius C programavimo kalba.
Pavyzdžiai
Dabar, kai suprantate tikslumą, pažiūrėkime į keletą pavyzdžių:
-
- Numatytasis plūdės tikslumas
- Numatytasis tikslumas dvigubai
- Nustatykite plūdės tikslumą
- Nustatykite tikslumą dvigubai
1 pavyzdys: Numatytasis plūdės tikslumas
Šis pavyzdys rodo, kad numatytasis tikslumas yra nustatytas po šešis skaitmenis po kablelio. Inicijavome plūduriuojantį kintamąjį, kurio vertė 2.7 ir atspausdino, tiksliai nenurodydamas tikslumo.
Tokiu atveju numatytasis tikslumo nustatymas užtikrins, kad po dešimtainio kablelio bus atspausdinti šeši skaitmenys.
# įtrauktiint main ()
plūdė f = 2.7;
printf ("\ nf =% f \ n reikšmė", f);
printf ("Plūdės dydis =% ld \ n", dydis (plūdė));
grąžinti 0;
2 pavyzdys: numatytasis tikslumas dvigubai
Šiame pavyzdyje pamatysite, kad dvigubo tipo kintamųjų numatytasis tikslumas yra šeši skaitmenys po kablelio. Inicijavome dvigubą kintamąjį, t.e., d, kurio vertė 2.7 ir atspausdino nenurodydamas tikslumo. Tokiu atveju numatytasis tikslumo nustatymas užtikrins, kad po dešimtainio kablelio bus atspausdinti šeši skaitmenys.
# įtrauktiint main ()
dvigubas d = 2.7;
printf ("\ nDydžio reikšmė =% lf \ n", d);
printf ("Dvigubo dydis =% ld \ n", dydisof (dvigubas));
grąžinti 0;
3 pavyzdys: nustatykite plūduriavimo tikslumą
Dabar parodysime, kaip nustatyti plūduriuojančių verčių tikslumą. Inicijavome plūduriuojantį kintamąjį, t.e., f, kurio vertė 2.7 ir atspausdino jį įvairiais tikslumo nustatymais. Kai paminėsime „% 0.4f “pareiškime printf tai rodo, kad esame suinteresuoti spausdinti keturis skaitmenis po kablelio.
# įtrauktiint main ()
plūdė f = 2.7;
/ * nustatykite plūduriuojančio kintamojo tikslumą * /
printf ("\ nf reikšmė (tikslumas = 0.1) =% 0.1f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.2) =% 0.2f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.3) =% 0.3f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.4) =% 0.4f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.22) =% 0.22f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.23) =% 0.23f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.24) =% 0.24f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.25) =% 0.25f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.40) =% 0.40f \ n ", f);
printf ("Plūdės dydis =% ld \ n", dydis (plūdė));
grąžinti 0;
4 pavyzdys: nustatykite tikslumą dvigubai
Šiame pavyzdyje pamatysime, kaip nustatyti tikslumą dviguboms reikšmėms. Inicijavome dvigubą kintamąjį, t.e., d, kurio vertė 2.7 ir atspausdino jį įvairiais tikslumo nustatymais. Kai paminėsime „% 0.52f “pareiškime„ printf “tai rodo, kad esame suinteresuoti spausdinti 52 skaitmenis po kablelio.
# įtrauktiint main ()
plūdė f = 2.7;
/ * nustatykite plūduriuojančio kintamojo tikslumą * /
printf ("\ nf reikšmė (tikslumas = 0.1) =% 0.1f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.2) =% 0.2f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.3) =% 0.3f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.4) =% 0.4f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.22) =% 0.22f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.23) =% 0.23f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.24) =% 0.24f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.25) =% 0.25f \ n ", f);
printf ("\ nf reikšmė (tikslumas = 0.40) =% 0.40f \ n ", f);
printf ("Plūdės dydis =% ld \ n", dydis (plūdė));
grąžinti 0;
Išvada
Tikslumas yra labai svarbus veiksnys, nurodantis realų skaičių tinkamu tikslumu. C programavimo kalba suteikia tikrojo skaičiaus tikslumo ar tikslumo kontrolės mechanizmą. Tačiau mes negalime pakeisti tikrojo skaičiaus tikslumo. Pvz., 32 bitų vieno tikslumo slankiojo kablelio skaičiaus dalį sudaro 23 bitai, ir tai yra fiksuota; mes negalime to pakeisti konkrečiai sistemai. Kiek tikslumo norime, galime nuspręsti tik nustatę norimą tikrojo skaičiaus tikslumą. Jei mums reikia daugiau tikslumo, visada galime naudoti 64 bitų dvigubo tikslumo slankiojo kablelio skaičių.