Sammenligningstabel:
Grundlag for sammenligning | Flyde | Dobbelt |
---|---|---|
Præcision | Enkelt præcision. | Dobbelt præcision. |
bits | 32 bit. | 64 bit. |
bytes | 4 bytes. | 8 byte. |
Omtrentlig rækkevidde | 1, 4e-045 til 3, 4e + 038 | 4.9e-324 til 1.8e + 308 |
Bits repræsentation | 1 bit repræsenterer tegnbit. 8 bit repræsenterer eksponent. 23 bit repræsenterer mantissa. | 1 bit repræsenterer tegnbit. 11 bit repræsenterer eksponent. 52 bit repræsenterer mantissa. |
Nøjagtighed | Mindre præcis. | Mere præcis. |
Definition af Float
En datatype float er en af Floating Point-typerne. Datatype float har 32-bit storage (hvilket svarer til 4 bytes) for variablen af float type. Datatype float angiver enkelt præcision. Repræsentationen af 32 bit i float kan forklares, da 1 bit er repræsenteret som tegnet bit, 8 bit er repræsenteret som en eksponent og 23 bit er repræsenteret som mantissa. Den maksimale rækkevidde af en float type er 1.4e-045 til 3.4e + 038. Sammenlignet med dobbelt floating-point type er float type mindre nøjagtig, når matematisk beregning. Lad os forstå float ved hjælp af et eksempel.
#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // output 8.00060
Som i ovenstående kode kan du observere, at en variabel variabel num1 er tildelt en værdi, der er ved funktionen sqrt (), som returnerer kvadratroden af den værdi, der sendes til denne funktion. Du kan observere, at når værdien i num1 er udskrevet, er den nær omkring den nøjagtige værdi, men den er ikke korrekt. Lad os se eksemplet nedenfor, når det samme program udføres med dobbelt som datatype.
Definition af Double
Dobbelt er den anden type flydende punkt datatype. En datatype-dobbelte har 64-bit storage (hvilket svarer til 8 byte) for en variabel af dobbelt type. Det angiver dobbelt præcision, da størrelsen er bare dobbelt af float. 64 bit repræsentationen af type dobbelt kan forklares, da 1 bit repræsenterer tegnbit, 11 bit repræsenterer en eksponent, og resterende 52 bit repræsenterer mantissa. Blandt float og dobbelt mest anvendte datatype er dobbelt. Typen dobbelt anvendes under matematisk beregning, og når der er behov for perfekt nøjagtighed. De matematiske funktioner sin (), cos () og sqrt () returnerer altid en dobbeltværdi. Lad os forstå nøjagtigheden af datatypen dobbelt med et eksempel.
#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // output 8.0143621
Du kan observere, at output, der er opnået i eksemplet, forklarer float, er forskelligt fra det output, der er opnået i eksemplet, og forklarer dobbelt. Så fra dette kan vi sige, at resultaterne opnået fra dobbelt er mere præcise i forhold til float.
Nøgleforskelle mellem float og double
- Datatype float angiver en enkelt præcision, der betyder, at når den sammenlignes med dobbelt, har den mindre nøjagtighed, mens den dobbelte angiver dobbelt præcision, da den bare er dobbelt for float, dens fejl er ubetydelig i forhold til float.
- En variabel af float-type har en oplagring på 32 bit, mens en variabel af dobbelt type har en opbevaring på 64 bit, hvilket kompilerer, at den dobbelte er større i lager sammenlignet med float.
- Værdien i float kan variere fra 1.4e-045 til 3.4e + 038, mens værdien af type dobbelt kan variere fra 4.9e-324 til 1.8e + 308.
- Bitrepræsentationen af en floatværdi ligner, at 1 bit float bruges til sing bit, de 8 bit for eksponent og 23 bit til opbevaring af mantissa. På den anden side ligner en dobbeltværdi, at 1 bit er brugt til syngebit, de 11 bit for eksponent og 52 bit deraf til opbevaring af mantissaen.
- Når sammenlignet med dobbelt float er mindre præcis, så anvendes matematisk beregning dobbelt.
Konklusion:
Nå skal du generelt bruge dobbelt, da det giver den nøjagtighed, som er vores vigtigste moto de fleste gange.