Salīdzināšanas diagramma:
Salīdzinājuma pamats | Peldēt | Divvietīgs numurs |
---|---|---|
Precizitāte | Viena precizitāte. | Dubultā precizitāte. |
Biti | 32 biti. | 64 biti. |
Biti | 4 baiti. | 8 baiti. |
Aptuvenais diapazons | 1.4e-045 līdz 3.4e + 038 | 4.9e-324 līdz 1.8e + 308 |
Bitu attēlojums | 1 bits pārstāv zīmju bitu. 8 biti pārstāv eksponentu. 23 biti pārstāv mantisu. | 1 bits pārstāv zīmju bitu. 11 biti pārstāv eksponentu. 52 biti pārstāv mantisu. |
Precizitāte | Mazāk precīzs. | Precīzāks. |
Float definīcija
Datu tipa pludiņš ir viens no peldošā punkta tipiem. Datu tipam ir 32 bitu atmiņa (kas ir vienāda ar 4 baitiem) mainīgā tipa mainīgajam. Datu tipa pludiņš nosaka vienu precizitāti. 32 bitu attēlojums pludiņā var tikt izskaidrots, jo 1 bits ir attēlots kā zīme, 8 biti tiek attēloti kā eksponents, un 23 biti tiek attēloti kā mantiss. Peldošā tipa maksimālais diapazons ir 1, 4e-045 līdz 3, 4e + 038. Salīdzinot ar dubultā peldošā punkta tipa peldošo tipu, matemātisko aprēķinu laikā ir mazāk precīzs. Sapratīsim peldēt, izmantojot piemēru.
#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // izeja 8.00060
Tāpat kā iepriekš minētajā kodā, var novērot, ka peldošam mainīgajam lielumam num1 tiek piešķirta vērtība, ko nosaka funkcija sqrt (), kas atgriež šai funkcijai nodotās vērtības kvadrātsakni. Jūs varat novērot, ka tad, kad num1 ir izdrukāta, tas ir tuvu precīzai vērtībai, bet tas nav precīzs. Tagad aplūkosim zemāk redzamo piemēru, kad tā pati programma tiek izpildīta, izmantojot dubultu kā datu tipu.
Double definīcija
Dubultā ir otrais peldošā punkta datu tips. Datu tipam ir 64 bitu atmiņa (kas ir vienāda ar 8 baitiem) divkārša tipa mainīgajam. Tā nosaka dubultu precizitāti, jo tā izmērs ir tikai divreiz lielāks par pludiņu. Tipa dubultā 64 bitu attēlojumu var izskaidrot, jo 1 bits pārstāv zīmju bitu, 11 biti ir eksponents, bet atlikušie 52 biti ir mantiss. Starp pludiņiem un divreiz visbiežāk izmantotajiem datu tipiem ir divkāršs. Tipa dubultā tiek izmantota matemātiskā aprēķina laikā, un, ja ir nepieciešama pilnīga precizitāte. Matemātiskās funkcijas sin (), cos () un sqrt () vienmēr atgriež dubultu vērtību. Sapratīsim datu tipu precizitāti ar piemēru.
#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // izeja 8.0143621
Jūs varat novērot, ka piemērā iegūtais rezultāts, kas izskaidro pludiņu, atšķiras no iznākuma, kas iegūts piemērā, izskaidrojot dubultu. Tātad, no tā varam teikt, ka rezultāti, kas iegūti no divkāršiem, ir precīzāki, salīdzinot ar peldošo.
Galvenās atšķirības starp peldēšanu un dubultošanos
- Datatipa floāts nosaka vienu precizitāti, kas nozīmē, ka, salīdzinot ar dubultu, tam ir mazāka precizitāte, savukārt dubultā precizitāte ir dubultā precizitāte, jo tā ir tikai divas reizes lielāka par pludiņu, tā kļūda ir niecīga, salīdzinot ar peldošo.
- Peldošā tipa mainīgajam lielumam ir 32 biti, savukārt dubultā tipa mainīgajam ir 64 bitu glabāšana, kas apkopo, ka dubultā vērtība ir lielāka, salīdzinot ar peldošo.
- Pludiņā esošā vērtība var būt no 1, 4e-045 līdz 3, 4e + 038, bet tipa dubultā vērtība var būt no 4.9e-324 līdz 1.8e + 308.
- Peldošās vērtības bitu attēlojums atgādina, ka 1 bitu pludiņa tiek izmantota dziesmu bitam, 8 biti eksponentam un 23 biti mantisas glabāšanai. No otras puses, dubultā vērtība atgādina, ka 1 bits tiek izmantots dziesmu bitam, 11 biti eksponentam un 52 biti no tā mantas glabāšanai.
- Salīdzinot ar dubultu pludiņu, ir mazāk precīza, tāpēc tiek izmantots matemātiskais aprēķins.
Secinājums:
Nu, jums parasti ir jālieto dubultā vērtība, jo tas nodrošina mūsu galveno moto lielāko daļu precizitātes.