Denne artikkelen vil vise deg hvordan du angir desimal presisjon i C-programmeringsspråk. Først vil vi definere presisjon, og deretter vil vi se på flere eksempler for å vise hvordan du angir desimal presisjon i C-programmering.
Desimal presisjon i C
Heltallstypevariabelen brukes normalt til å holde hele tallet og flyttypevariabelen for å holde de reelle tallene med brøkdeler, for eksempel 2.449561 eller -1.0587. Presisjon bestemmer nøyaktigheten til de reelle tallene og blir betegnet med prikken (.) symbol. Nøyaktigheten eller nøyaktigheten av reelle tall er angitt med antall sifre etter desimaltegnet. Så presisjon betyr antall sifre som er nevnt etter desimaltegnet i flottørtallet. For eksempel tallet 2.449561 har presisjon seks og -1.058 har presisjon tre.
I henhold til IEEE-754 representasjon med flytende punkt med en enkelt presisjon, er det totalt 32 bits for å lagre det virkelige tallet. Av de 32 bitene blir den viktigste biten brukt som tegnbit, de følgende 8 bitene brukes som en eksponent, og de følgende 23 bitene brukes som en brøkdel.
Når det gjelder IEEE-754 flytende punktrepresentasjon med dobbel presisjon, er det totalt 64 bits for å lagre det virkelige tallet. Av de 64 bitene brukes den mest betydningsfulle biten som tegnbit, de følgende 11 bitene brukes som en eksponent, og de følgende 52 bitene brukes som en brøkdel.
Når du skriver ut reelle tall, er det imidlertid nødvendig å spesifisere presisjonen (med andre ord, nøyaktigheten) til det reelle tallet. Hvis presisjonen ikke er spesifisert, vil standardpresisjonen bli vurdert, i.e., seks desimaltegn etter desimaltegnet. I de følgende eksemplene vil vi vise deg hvordan du spesifiserer presisjon når du skriver ut flytende tall i C-programmeringsspråket.
Eksempler
Nå som du har en grunnleggende forståelse av presisjon, la oss se på et par eksempler:
-
- Standard presisjon for flottør
- Standard presisjon for dobbelt
- Still presisjon for flyt
- Sett presisjon for dobbelt
Eksempel 1: Standard presisjon for flyt
Dette eksemplet viser at standard presisjon er satt til seks sifre etter desimaltegnet. Vi har initialisert en flytvariabel med verdien 2.7 og trykte den uten å spesifisere presisjonen.
I dette tilfellet vil standard presisjonsinnstilling sikre at seks sifre etter desimaltegnet skrives ut.
#inkludereint main ()
flyte f = 2.7;
printf ("\ nVerdi av f =% f \ n", f);
printf ("Størrelse på flottør =% ld \ n", størrelse på (flyt));
retur 0;
Eksempel 2: Standard presisjon for dobbelt
I dette eksemplet vil du se at standardpresisjonen er satt til seks sifre etter desimaltegnet for dobbelvariabler. Vi har initialisert en dobbel variabel, i.e., d, med verdien 2.7 og skrev den ut uten å spesifisere presisjonen. I dette tilfellet vil standard presisjonsinnstilling sikre at seks sifre etter desimaltegnet skrives ut.
#inkludereint main ()
dobbel d = 2.7;
printf ("\ nVerdi av d =% lf \ n", d);
printf ("Størrelse på dobbelt =% ld \ n", størrelse på (dobbelt));
retur 0;
Eksempel 3: Still presisjon for flyt
Nå vil vi vise deg hvordan du setter presisjon for flyteverdier. Vi har initialisert en flytevariabel, jeg.e., f, med verdien 2.7, og skrev den ut med forskjellige presisjonsinnstillinger. Når vi nevner “% 0.4f ”i printf-setningen, indikerer dette at vi er interessert i å skrive ut fire sifre etter desimaltegnet.
#inkludereint main ()
flyte f = 2.7;
/ * sett presisjon for flytevariabel * /
printf ("\ nVerdi av f (presisjon = 0.1) =% 0.1f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.2) =% 0.2f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.3) =% 0.3f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.4) =% 0.4f \ n ", f);
printf ("\ nVerdien av f (presisjon = 0.22) =% 0.22f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.23) =% 0.23f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.24) =% 0.24f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.25) =% 0.25f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.40) =% 0.40f \ n ", f);
printf ("Størrelse på flottør =% ld \ n", størrelse på (flyt));
retur 0;
Eksempel 4: Sett presisjon for dobbelt
I dette eksemplet vil vi se hvordan du setter presisjon for doble verdier. Vi har initialisert en dobbel variabel, i.e., d, med verdien 2.7 og skrev den ut med forskjellige presisjonsinnstillinger. Når vi nevner “% 0.52f ”i printf-setningen, indikerer dette at vi er interessert i å skrive ut 52 sifre etter desimaltegnet.
#inkludereint main ()
flyte f = 2.7;
/ * sett presisjon for flytevariabel * /
printf ("\ nVerdi av f (presisjon = 0.1) =% 0.1f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.2) =% 0.2f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.3) =% 0.3f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.4) =% 0.4f \ n ", f);
printf ("\ nVerdien av f (presisjon = 0.22) =% 0.22f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.23) =% 0.23f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.24) =% 0.24f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.25) =% 0.25f \ n ", f);
printf ("\ nVerdi av f (presisjon = 0.40) =% 0.40f \ n ", f);
printf ("Størrelse på flottør =% ld \ n", størrelse på (flyt));
retur 0;
Konklusjon
Presisjon er en veldig viktig faktor for å representere et reelt tall med tilstrekkelig nøyaktighet. Programmeringsspråket c gir mekanismen for å kontrollere nøyaktigheten eller nøyaktigheten til et reelt tall. Vi kan imidlertid ikke endre den faktiske presisjonen til det virkelige tallet. For eksempel er brøkdelen av et 32-bits flytende punktnummer med en presisjon representert med 23 bits, og dette er løst; vi kan ikke endre dette for et bestemt system. Vi kan bare bestemme hvor mye nøyaktighet vi ønsker ved å stille inn ønsket presisjon for det virkelige tallet. Hvis vi trenger mer nøyaktighet, kan vi alltid bruke 64-biters flytende punktnummer med dobbel presisjon.