Összehasonlító táblázat:
Az összehasonlítás alapja | Úszó | Kettős |
---|---|---|
Pontosság | Egyetlen pontosság. | Dupla pontosság. |
bit | 32 bit. | 64 bit. |
bytes | 4 bájt . | 8 bájt. |
Hozzávetőleges tartomány | 1, 4e-045 - 3, 4e + 038 | 4, 9e-324 - 1, 8e + 308 |
Bits reprezentáció | Az 1 bites jelbit. 8 bit képviseli az exponentet. 23 bit képviseli a mantissát. | Az 1 bites jelbit. 11 bit képviseli az exponentet. 52 bit képviseli a mantissát. |
Pontosság | Kevésbé pontos. | Pontosabb. |
A Float meghatározása
Az adatcsatorna úszó egyike a lebegőpontos típusoknak. Az adattípus úszó 32 bites tárolóval rendelkezik (ami 4 bájt), az úszó típusú változó számára. Az adattípus úszó meghatározza az egyetlen pontosságot. A 32 bites lebegés ábrázolása magyarázható az 1 bites ábrán, 8 bit pedig exponensként, 23 bit pedig mantissaként van ábrázolva. Az úszó típus maximális tartománya 1, 4e-045 - 3, 4e + 038. A kettős lebegőpontos típushoz képest a matematikai számításnál a lebegő típus kevésbé pontos. Megértjük az úszót egy példával.
#include #include int main () {float num1 = sqrt (64.23) cout << szám1; } // kimenet 8.00060
A fenti kódhoz hasonlóan megfigyelhetjük, hogy a num1 változó változónak van egy értéke, amely az sqrt () függvénynek felel meg, amely a függvényhez továbbított érték négyzetgyökét adja vissza. Megfigyelhetjük, hogy ha a num1 értékét kinyomtatja, akkor közel van a pontos értékhez, de nem pontos. Most lássuk az alábbi példát, amikor ugyanazt a programot hajtjuk végre kettős dátummal, mint adattípus.
A kettős meghatározása
A kettős a lebegőpontos adattípus második típusa. A dupla adattípus kettős típusú 64 bites tárolóval rendelkezik (ami 8 bájt), kettős típusú változó számára. Dupla pontosságot határoz meg, mivel mérete csak kétszerese az úszónak. A kettős típus 64 bites ábrázolása magyarázható az 1 bites jelbit, 11 bit egy exponens, a maradék 52 bit pedig a mantissa. Az úszó és a kettős leggyakrabban használt adattípus kettős. A kettős típus a matematikai számítás során kerül felhasználásra, és ha szükség van tökéletes pontosságra. A sin (), cos () és sqrt () matematikai függvények mindig kétszeres értéket adnak vissza. Megértjük az adattípus pontosságát egy példával.
#include #include int main () {double num1 = sqrt (64.23) cout << szám1; } // kimenet 8.0143621
Megfigyelhetjük, hogy a példában nyert kimenet, amely az úszót magyarázza, különbözik a példában kapott kimenetétől, magyarázva a kettős. Ebből tehát azt mondhatjuk, hogy a kettősből származó eredmények pontosabbak az úszóhoz képest.
Főbb különbségek az úszó és a kettős között
- Az adattípus úszó meghatározza az egyetlen pontosságot, ami azt jelenti, hogy a kettőshez képest kevesebb pontossággal rendelkezik, míg a kettős pontosság kettős pontosságot ad meg, mivel csak kétszerese a lebegőnek.
- A lebegő típusú változó 32 bites tárolóval rendelkezik, míg a kettős típus változó 64 bites tárolóval rendelkezik, amely összegyűjti, hogy a kettős nagyobb a tárolásban, mint az úszó.
- A lebegő érték 1, 4e-045 és 3, 4e + 038 között változhat, míg a dupla típus értéke 4, 9e-324 és 1, 8e + 308 között lehet.
- A lebegő érték bitformázása hasonlít arra, hogy 1 bit úszót használnak az énekbit, a 8 bites exponens és 23 bit bit tárolására. Másrészt, egy kettős érték hasonlít arra, hogy 1 bitet használnak az ének bithez, a 11 bitet az exponenshez és 52 bitjét a mantissa tárolásához.
- A kettős úszással összehasonlítva kevésbé pontos, míg a matematikai számítás kettős.
Következtetés:
Nos, általában kettősnek kell lennie, mivel ez biztosítja a pontosságot, amely a legtöbb alkalommal a fő moto.