Ovaj će vam članak pokazati kako postaviti decimalnu preciznost u programskom jeziku C. Prvo ćemo definirati preciznost, a zatim ćemo proučiti više primjera kako bismo pokazali kako postaviti decimalnu preciznost u programiranju na C-u.
Decimalna preciznost u C
Cjelovita varijabla tipa obično se koristi za držanje cijelog broja, a varijabla plutajućeg tipa za zadržavanje stvarnih brojeva s razlomljenim dijelovima, na primjer 2.449561 ili -1.0587. Preciznost određuje točnost stvarnih brojeva i označava se točkom (.) simbol. Točnost ili točnost stvarnih brojeva označava se brojem znamenki nakon decimalne točke. Dakle, preciznost znači broj znamenki koji se spominju nakon decimalne točke u plutajućem broju. Na primjer, broj 2.449561 ima preciznost šest i -1.058 ima preciznost tri.
Prema IEEE-754 jednopreciznom predstavljanju s pomičnim zarezom, postoji ukupno 32 bita za pohranu stvarnog broja. Od 32 bita, najznačajniji bit koristi se kao znakovni bit, sljedećih 8 bitova koristi se kao eksponent, a sljedećih 23 bita koristi se kao razlomak.
U slučaju IEEE-754 dvostruke preciznosti predstavljanja s pomičnim zarezom, postoji ukupno 64 bita za pohranu stvarnog broja. Od 64 bita, najznačajniji bit koristi se kao znakovni bit, sljedećih 11 bitova koristi se kao eksponent, a sljedećih 52 bita koristi se kao razlomak.
Međutim, prilikom ispisa stvarnih brojeva potrebno je odrediti preciznost (drugim riječima, točnost) stvarnog broja. Ako preciznost nije navedena, razmotrit će se zadana preciznost, tj.e., šest decimalnih znamenki nakon decimalne točke. U sljedećim primjerima pokazat ćemo vam kako odrediti preciznost prilikom ispisa brojeva s pomičnom zarezom u programskom jeziku C.
Primjeri
Sad kad ste osnovno razumjeli preciznost, pogledajmo nekoliko primjera:
-
- Zadana preciznost za float
- Zadana preciznost za dvostruko
- Postavite preciznost za plovak
- Postavite preciznost za dvostruko
Primjer 1: Zadana preciznost za float
Ovaj primjer pokazuje da je zadana preciznost postavljena na šest znamenki nakon decimalne točke. Inicijalizirali smo float varijablu s vrijednošću 2.7 i ispisao ga bez izričite specifikacije preciznosti.
U tom će slučaju zadana postavka preciznosti osigurati ispis šest znamenki nakon decimalne točke.
#includeint main ()
plovak f = 2.7;
printf ("\ nVrijednost f =% f \ n", f);
printf ("Veličina float-a =% ld \ n", sizeof (float));
return 0;
Primjer 2: Zadana preciznost za Double
U ovom ćete primjeru vidjeti da je zadana preciznost postavljena na šest znamenki nakon decimalne točke za varijable dvostrukog tipa. Inicirali smo dvostruku varijablu, tj.e., d, s vrijednošću 2.7 i ispisao ga bez navođenja preciznosti. U tom će slučaju zadana postavka preciznosti osigurati ispis šest znamenki nakon decimalne točke.
#includeint main ()
dvostruko d = 2.7;
printf ("\ nVrijednost d =% lf \ n", d);
printf ("Veličina dvostrukog =% ld \ n", veličina (dvostrukog));
return 0;
Primjer 3: Postavite preciznost za plovak
Sada ćemo vam pokazati kako postaviti preciznost za plutajuće vrijednosti. Inicijalizirali smo float varijablu, tj.e., f, s vrijednošću 2.7 i ispisao ga s raznim preciznim postavkama. Kad spominjemo „% 0.4f ”u izjavi printf, to znači da smo zainteresirani za ispis četiri znamenke nakon decimalne točke.
#includeint main ()
plovak f = 2.7;
/ * postavi preciznost za plutajuću varijablu * /
printf ("\ nVrijednost f (preciznost = 0.1) =% 0.1f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.2) =% 0.2f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.3) =% 0.3f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.4) =% 0.4f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.22) =% 0.22f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.23) =% 0.23f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.24) =% 0.24f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.25) =% 0.25f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.40) =% 0.40f \ n ", f);
printf ("Veličina float-a =% ld \ n", sizeof (float));
return 0;
Primjer 4: Postavite preciznost za dvostruko
U ovom ćemo primjeru vidjeti kako postaviti preciznost za dvostruke vrijednosti. Inicirali smo dvostruku varijablu, tj.e., d, s vrijednošću 2.7 i ispisao ga s raznim postavkama preciznosti. Kad spominjemo „% 0.52f ”u izjavi printf, to znači da smo zainteresirani za ispis 52 znamenke nakon decimalne točke.
#includeint main ()
plovak f = 2.7;
/ * postavi preciznost za plutajuću varijablu * /
printf ("\ nVrijednost f (preciznost = 0.1) =% 0.1f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.2) =% 0.2f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.3) =% 0.3f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.4) =% 0.4f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.22) =% 0.22f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.23) =% 0.23f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.24) =% 0.24f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.25) =% 0.25f \ n ", f);
printf ("\ nVrijednost f (preciznost = 0.40) =% 0.40f \ n ", f);
printf ("Veličina float-a =% ld \ n", sizeof (float));
return 0;
Zaključak
Preciznost je vrlo važan čimbenik za predstavljanje stvarnog broja s odgovarajućom točnošću. Programski jezik c pruža mehanizam za kontrolu točnosti ili točnosti stvarnog broja. Međutim, ne možemo promijeniti stvarnu preciznost stvarnog broja. Na primjer, razlomljeni dio 32-bitnog broja s pomičnom zarezom s jednom preciznošću predstavljen je s 23 bita i to je fiksno; to ne možemo promijeniti za određeni sustav. Koliku točnost želimo želimo možemo odlučiti samo postavljanjem željene preciznosti stvarnog broja. Ako trebamo veću točnost, uvijek možemo koristiti 64-bitni broj s dvostrukom preciznošću s pomičnom zarezom.