
Tabela za primerjavo:
Podlaga za primerjavo | Float | Dvoposteljna |
---|---|---|
Natančnost | Enotna natančnost. | Dvojna natančnost. |
Bitov | 32 bitov. | 64 bitov. |
Bytes | 4 bajti. | 8 bajtov. |
Približno območje | 1.4e-045 do 3.4e + 038 | 4.9e-324 do 1.8e + 308 |
Reprezentacija bitov | 1 bit predstavlja znakovni bit. 8 bit predstavlja eksponent. 23 bitov predstavljajo mantiso. | 1 bit predstavlja znakovni bit. 11 bit predstavlja eksponent. 52 bitov je mantisa. |
Točnost | Manj natančna. | Bolj natančno. |
Opredelitev plovbe
Podatkovni tip float je ena od vrst s plavajočo točko. Float tipa podatkov ima 32-bitno shrambo (ki je enaka 4 bajtom) za spremenljivko tipa float. Vrsta podatkov float določa eno natančnost. Predstavitev 32-bitnega v float lahko razložimo kot 1 bit predstavljen kot znakski bit, 8 bitov je predstavljenih kot eksponent in 23 bitov so predstavljeni kot mantisa. Maksimalno območje tipa plovca je 1.4e-045 do 3.4e + 038. V primerjavi z dvojnim plavajočim tipom je tip plovila manj natančen, pri matematičnem izračunu. Razumimo plavajoče z uporabo primera.
#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // izhod 8.00060
Kot v zgornji kodi, lahko opazimo, da je float spremenljivka num1 dodeljena vrednost, ki je s funkcijo sqrt (), ki vrne kvadratni koren vrednosti, ki je posredovana tej funkciji. Opazimo lahko, da je, ko je vrednost v num1 natisnjena, blizu približno točne vrednosti, vendar ni točna. Zdaj bomo videli primer spodaj, ko se isti program izvede z dvojnim tipom podatkov.
Opredelitev dvojne
Double je druga vrsta podatkov s plavajočo vejico. Podatkovni tip double ima 64-bitno shrambo (ki je enaka 8 bajtom) za spremenljivko dvojnega tipa. Določa dvojno natančnost, saj je njena velikost le dvakrat višja od float. 64-bitno predstavitev tipa double je mogoče razložiti, ko 1 bit predstavlja bit znaka, 11 bitov predstavlja eksponent, preostalih 52 bitov pa mantisa. Med float in dvojno najpogosteje uporabljenim tipom podatkov je dvojni. Pri matematičnem izračunu se uporablja tip double in ko je potrebna popolna natančnost. Matematične funkcije sin (), cos () in sqrt () vedno vrnejo dvojno vrednost. Poglejmo natančnost dvojnega tipa podatkov s primerom.
#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // izhod 8.0143621
Opazimo lahko, da je rezultat, dobljen v primeru, ki pojasnjuje float, drugačen od izhoda, dobljenega v primeru, ki pojasnjuje dvojno. Tako lahko rečemo, da so rezultati, pridobljeni iz dvojnega, natančnejši v primerjavi s float.
Ključne razlike med Float in Double
- Datatype float določa enojno natančnost, kar pomeni, da ima v primerjavi z dvojno manjšo natančnost, medtem ko dvojna natančnost določa dvojno natančnost, saj je le dvakrat višja od float, njena napaka je zanemarljiva v primerjavi s float.
- Spremenljivka tipa float ima shranjeno 32 bitov, medtem ko ima spremenljivka dvojnega tipa shrambo 64 bitov, ki združuje dvojno vrednost v pomnilniku v primerjavi s float.
- Vrednost v float se lahko giblje od 1.4e-045 do 3.4e + 038, medtem ko se lahko vrednost tipa double giblje od 4.9e-324 do 1.8e + 308.
- Predstavitev plavajoče vrednosti bitov je podobna tisti, ki se uporablja za bit, in sicer 8 bitov za eksponent in 23 bitov za shranjevanje mantise. Po drugi strani pa dvojna vrednost spominja na to, da je 1-bitni del uporabljen za bitno količino, 11-bitni za eksponent in 52-bitni za shranjevanje mantise.
- V primerjavi z dvojnim plovcem je manj natančno, zato se uporablja matematični izračun.
Sklep:
No, morate na splošno uporabljati dvojno, saj zagotavlja natančnost, ki je naš glavni moto večino časa.