
Palyginimo diagrama:
Palyginimo pagrindas | Plūdė | Dvivietis |
---|---|---|
Tikslumas | Vienkartinis tikslumas. | Dvigubas tikslumas. |
Bitai | 32 bitai. | 64 bitai. |
Bitai | 4 baitai. | 8 baitai. |
Apytikslis diapazonas | 1.4e-045 - 3.4e + 038 | 4.9e-324 iki 1.8e + 308 |
Bitų reprezentacija | 1 bitas žymi ženklo bitą. 8 bitai yra eksponentas. 23 bitai yra mantissa. | 1 bitas žymi ženklo bitą. 11 bitų yra eksponentas. 52 bitai yra mantissa. |
Tikslumas | Mažiau tiksli. | Tikslesnis. |
Plūdės apibrėžimas
Duomenų tipo plūduras yra vienas iš kintamų taškų tipų. Duomenų tipo plūdė turi 32 bitų saugyklą (kuri yra lygi 4 baitams) kintamojo plūdės tipo atžvilgiu. Duomenų tipo float nurodo vieną tikslumą. 32 bitų atvaizdavimas plūde gali būti paaiškintas kaip 1 bitas kaip ženklo bitas, 8 bitai yra eksponentai, o 23 bitai yra pateikiami kaip mantissa. Maksimalus plūdės tipo diapazonas yra 1, 4e-045 - 3, 4e + 038. Lyginant su dvigubo kintamo taško tipo plūdės tipu, matematinis skaičiavimas yra ne toks tikslus. Suprasime plūdę naudodami pavyzdį.
#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // išėjimas 8.00060
Kaip ir pirmiau pateiktame kode, galite pastebėti, kad plūdės kintamasis skaičius 1 yra priskiriamas reikšmei, kuri yra funkcija sqrt (), kuri grąžina šiai funkcijai perduodamos vertės kvadratinę šaknį. Galite pastebėti, kad, kai spausdinama num1 reikšmė, ji yra artima tiksliai nustatytai vertei, tačiau ji nėra tiksli. Dabar pamatysime žemiau pateiktą pavyzdį, kai ta pati programa vykdoma naudojant dvigubą kaip duomenų tipą.
Dvigubo apibrėžimas
Dvigubas yra antrojo tipo kintamojo taško duomenų tipas. Dvigubo duomenų tipo dvigubo tipo duomenų bazė yra 64 bitų (tai yra 8 baitai). Jis nurodo dvigubą tikslumą, nes jo dydis yra dvigubai didesnis už plūdę. Dvigubo 64 bitų reprezentacija gali būti paaiškinta, nes 1 bitas žymi ženklo bitą, 11 bitų - eksponentą, o likę 52 bitai - mantissa. Tarp plaukiojančių ir dvigubų dažniausiai naudojamų duomenų tipų yra dvigubas. Tipas dvigubas naudojamas matematinio skaičiavimo metu, o kai reikalingas tobulas tikslumas. Matematinės funkcijos sin (), cos () ir sqrt () visada duoda dvigubą vertę. Suprasime duomenų tipo tikslumą dvigubai su pavyzdžiu.
#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // išėjimas 8.0143621
Galite pastebėti, kad pavyzdyje gautas rezultatas, paaiškinantis plūdę, skiriasi nuo pavyzdyje gauto rezultato, paaiškindamas dvigubą. Taigi, iš to galima pasakyti, kad dvigubai gauti rezultatai yra tikslesni, palyginti su plūduriu.
Pagrindiniai skirtumai tarp plūdės ir dvigubo
- „Datatype float“ nurodo vieną tikslumą, o tai reiškia, kad, lyginant su dvigubu, jis turi mažiau tikslumo, o dvigubas nurodo dvigubą tikslumą, nes jis yra tik dvigubai didesnis už plūdę.
- Plūdės tipo kintamasis turi 32 bitų, o dvigubo tipo kintamasis turi 64 bitų saugyklą, kuri kaupia, kad dvigubai didesnė, palyginti su plūdėmis.
- Plūdės reikšmė gali būti nuo 1, 4e-045 iki 3, 4e + 038, o tipo dvigubo vertė gali svyruoti nuo 4.9e-324 iki 1.8e + 308.
- Plūdės vertės bitų reprezentacija yra panaši į tai, kad 1 bitui plūdės yra naudojamas dainuoti, 8 bitai eksponentui ir 23 bitai mantelės saugojimui. Kita vertus, dviguba vertė yra panaši į tai, kad 1 bitai yra naudojami dainuoti, 11 bitų eksponentui ir 52 bitai mantelės saugojimui.
- Palyginus su dvigubu plūdės sluoksniu, yra mažiau tikslios, o matematinis skaičiavimas yra dvigubas.
Išvada:
Na, jūs paprastai turite naudoti dvigubai, nes tai suteikia tikslumą, kuris dažniausiai yra pagrindinis mūsų moto.