C Programmeren

Decimale precisie instellen in C-taal

Decimale precisie instellen in C-taal

Dit artikel laat je zien hoe je de decimale precisie instelt in de programmeertaal C. Eerst zullen we precisie definiëren, en dan zullen we kijken naar meerdere voorbeelden om te laten zien hoe decimale precisie in C-programmering in te stellen.

Decimale precisie in C

De variabele van het type integer wordt normaal gesproken gebruikt om het hele getal vast te houden en de variabele van het type float om de reële getallen met gebroken delen vast te houden, bijvoorbeeld 2.449561 of -1.0587. Precisie bepaalt de nauwkeurigheid van de reële getallen en wordt aangegeven met de punt (.) symbool. De nauwkeurigheid of nauwkeurigheid van reële getallen wordt aangegeven door het aantal cijfers achter de komma. Precisie betekent dus het aantal cijfers achter de komma in het zwevende getal. Bijvoorbeeld het getal 2.449561 heeft precisie zes en -1.058 heeft precisie drie.

Volgens IEEE-754 single-precision floating point representatie, zijn er in totaal 32 bits om het echte getal op te slaan. Van de 32 bits wordt het meest significante bit als tekenbit gebruikt, de volgende 8 bits als exponent en de volgende 23 bits als breuk.

In het geval van IEEE-754 dubbele precisie drijvende-kommaweergave, zijn er in totaal 64 bits om het reële getal op te slaan. Van de 64 bits wordt de meest significante bit als tekenbit gebruikt, de volgende 11 bits als exponent en de volgende 52 bits als breuk.

Bij het afdrukken van de reële getallen is het echter noodzakelijk om de precisie (met andere woorden, nauwkeurigheid) van het reële getal te specificeren. Als de precisie niet is opgegeven, wordt rekening gehouden met de standaardprecisie, i.e., zes cijfers achter de komma. In de volgende voorbeelden laten we u zien hoe u precisie specificeert bij het afdrukken van getallen met drijvende komma in de programmeertaal C C.

Voorbeelden

Nu u een basiskennis van precisie hebt, laten we een paar voorbeelden bekijken:

    1. Standaardprecisie voor float
    2. Standaardprecisie voor dubbel
    3. Precisie instellen voor zweven
    4. Precisie instellen voor dubbel

Voorbeeld 1: Standaardprecisie voor zweven

Dit voorbeeld laat zien dat de standaardprecisie is ingesteld op zes cijfers achter de komma. We hebben een float-variabele geïnitialiseerd met de waarde 2.7 en afgedrukt zonder expliciet de precisie op te geven.

In dit geval zorgt de standaard precisie-instelling ervoor dat er zes cijfers achter de komma worden afgedrukt.

#include
int hoofd()

vlotter f = 2.7;
printf("\nWaarde van f = %f \n", f);
printf("Grootte van float = %ld \n", sizeof(float));
retourneer 0;

Voorbeeld 2: Standaardprecisie voor Double

In dit voorbeeld ziet u dat de standaardprecisie is ingesteld op zes cijfers achter de komma voor variabelen van het dubbele type. We hebben een dubbele variabele geïnitialiseerd, i.e., d, met de waarde 2.7 en afgedrukt zonder de precisie op te geven. In dit geval zorgt de standaard precisie-instelling ervoor dat er zes cijfers achter de komma worden afgedrukt.

#include
int hoofd()

dubbele d = 2.7;
printf("\nWaarde van d = %lf \n", d);
printf("Grootte van double = %ld \n", sizeof(double));
retourneer 0;

Voorbeeld 3: Precisie instellen voor zweven

Nu laten we u zien hoe u de precisie voor zwevende waarden instelt. We hebben een float-variabele geïnitialiseerd, i.e., f, met de waarde 2.7, en afgedrukt met verschillende precisie-instellingen. Wanneer we "%0" noemen.4f” in de printf-opdracht, geeft dit aan dat we geïnteresseerd zijn in het afdrukken van vier cijfers achter de komma.

#include
int hoofd()

vlotter f = 2.7;
/* precisie instellen voor variabele float */
printf("\nWaarde van f (precisie = 0.1) = %0.1f \n", f);
printf("\nWaarde van f (precisie = 0.2) = %0.2f \n", f);
printf("\nWaarde van f (precisie = 0.3) = %0.3f \n", f);
printf("\nWaarde van f (precisie = 0.4) = %0.4f \n", f);
printf("\nWaarde van f (precisie = 0.22) = %0.22f \n", f);
printf("\nWaarde van f (precisie = 0.23) = %0.23f \n", f);
printf("\nWaarde van f (precisie = 0.24) = %0.24f \n", f);
printf("\nWaarde van f (precisie = 0.25) = %0.25f \n", f);
printf("\nWaarde van f (precisie = 0.40) = %0.40f \n", f);
printf("Grootte van float = %ld \n", sizeof(float));
retourneer 0;

Voorbeeld 4: Precisie instellen voor Double

In dit voorbeeld zullen we zien hoe u precisie instelt voor dubbele waarden. We hebben een dubbele variabele geïnitialiseerd, i.e., d, met de waarde 2.7 en afgedrukt met verschillende precisie-instellingen. Wanneer we "%0" noemen.52f” in de printf-instructie, geeft dit aan dat we geïnteresseerd zijn in het afdrukken van 52 cijfers achter de komma.

#include
int hoofd()

vlotter f = 2.7;
/* precisie instellen voor variabele float */
printf("\nWaarde van f (precisie = 0.1) = %0.1f \n", f);
printf("\nWaarde van f (precisie = 0.2) = %0.2f \n", f);
printf("\nWaarde van f (precisie = 0.3) = %0.3f \n", f);
printf("\nWaarde van f (precisie = 0.4) = %0.4f \n", f);
printf("\nWaarde van f (precisie = 0.22) = %0.22f \n", f);
printf("\nWaarde van f (precisie = 0.23) = %0.23f \n", f);
printf("\nWaarde van f (precisie = 0.24) = %0.24f \n", f);
printf("\nWaarde van f (precisie = 0.25) = %0.25f \n", f);
printf("\nWaarde van f (precisie = 0.40) = %0.40f \n", f);
printf("Grootte van float = %ld \n", sizeof(float));
retourneer 0;

Conclusie

Precisie is een zeer belangrijke factor om een ​​reëel getal met voldoende nauwkeurigheid weer te geven. De programmeertaal c biedt het mechanisme om de nauwkeurigheid of exactheid van een reëel getal te controleren. We kunnen de werkelijke precisie van het reële getal echter niet veranderen. Het breukgedeelte van een 32-bits drijvende-kommagetal met enkele precisie wordt bijvoorbeeld weergegeven door 23 bits, en dit is vast; we kunnen dit niet veranderen voor een bepaald systeem. We kunnen alleen beslissen hoeveel nauwkeurigheid we willen door de gewenste precisie van het reële getal in te stellen. Als we meer nauwkeurigheid nodig hebben, kunnen we altijd het 64-bits dubbele-precisie drijvende-kommagetal gebruiken.

OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...