Wykres porównania:
Podstawa do porównania | Pływak | Podwójnie |
---|---|---|
Precyzja | Pojedyncza precyzja. | Podwójna precyzja. |
Bity | 32 bity. | 64 bity. |
Bajty | 4 bajty . | 8 bajtów. |
Przybliżony zasięg | 1, 4 e-045 do 3, 4 e + 038 | 4, 9e-324 do 1, 8e + 308 |
Reprezentacja bitów | 1 bit reprezentuje bit znaku. 8 bit reprezentuje wykładnik. 23 bity reprezentują mantysę. | 1 bit reprezentuje bit znaku. 11 bit reprezentuje wykładnik. 52 bity reprezentują mantysę. |
Precyzja | Mniej dokładnie. | Bardziej precyzyjne. |
Definicja pływaka
Pętla typów danych jest jednym z typów zmiennoprzecinkowych. Pętla danych ma 32-bitową pamięć (która jest równa 4 bajtom) dla zmiennej typu float. Pętla typu danych określa pojedynczą precyzję. Reprezentację 32 bitów w float można wyjaśnić, ponieważ 1 bit jest reprezentowany jako bit znaku, 8 bitów jest reprezentowane jako wykładnik, a 23 bity są reprezentowane jako mantysa. Maksymalny zakres typu float to 1, 4e-045 do 3, 4e + 038. W porównaniu z typem zmiennoprzecinkowym o podwójnym zmiennoprzecinkowym typ pływaka jest mniej dokładny przy obliczeniach matematycznych. Rozumiemy float na przykładzie.
#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // output 8.00060
Tak jak w powyższym kodzie, można zaobserwować, że float zmiennej num1 przypisano wartość, która jest funkcją sqrt (), która zwraca pierwiastek kwadratowy z wartości, która jest przekazywana do tej funkcji. Można zauważyć, że po wydrukowaniu wartości pod numerem 1 wartość zbliżona jest do dokładnej wartości, ale nie jest dokładna. Zobaczmy teraz przykład poniżej, kiedy ten sam program jest wykonywany przy użyciu podwójnego jako typu danych.
Definicja Double
Double to drugi rodzaj typu danych zmiennoprzecinkowych. Podwójny typ danych ma 64-bitową pamięć masową (równą 8 bajtom) dla zmiennej o podwójnym typie. Określa podwójną precyzję, ponieważ jego rozmiar jest dwukrotnie większy od pływaka. 64 bitową reprezentację typu double można wyjaśnić, ponieważ 1 bit reprezentuje bit znaku, 11 bitów reprezentuje wykładnik, a pozostałe 52 bity oznaczają mantysę. Spośród float i double najczęściej używanym typem danych jest double. Typ podwójny jest używany podczas obliczeń matematycznych, a kiedy jest potrzeba doskonałej dokładności. Funkcje matematyczne sin (), cos () i sqrt () zawsze zwracają podwójną wartość. Rozumiemy dokładność podwójnego typu danych za pomocą przykładu.
#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // output 8.0143621
Można zauważyć, że wynik uzyskany w przykładzie, objaśniający zmienną, jest różny od wyniku uzyskanego w przykładzie, wyjaśniającego podwójne. Tak więc, z tego możemy powiedzieć, że wyniki uzyskane z podwójnego są dokładniejsze w porównaniu do pływaka.
Kluczowe różnice między Float i Double
- Pętla typów danych precyzuje pojedynczą precyzję, co oznacza, że w porównaniu do podwójnej ma mniejszą dokładność, podczas gdy podwójność precyzuje podwójną precyzję, ponieważ jest tylko dwukrotnością wartości zmiennoprzecinkowej, jej błąd jest pomijalny w porównaniu do wartości zmiennoprzecinkowej.
- Zmienna typu float ma pamięć 32-bitową, podczas gdy zmienna typu double ma 64-bitową pamięć, która kompiluje to podwójne w porównaniu z floatem.
- Wartość w float może wynosić od 1, 4 e-045 do 3, 4e + 038, podczas gdy wartość typu double może wynosić od 4, 9e-324 do 1, 8e + 308.
- Reprezentacja bitów wartości zmiennoprzecinkowej przypomina, że 1 bit zmiennoprzecinkowy jest używany dla bitu śpiewu, 8 bitów dla wykładnika i 23 bity dla przechowywania mantysy. Z drugiej strony, wartość podwójna przypomina, że 1 bit jest używany do bitu śpiewu, 11 bitów do wykładnika i 52 do zapisania mantysy.
- W porównaniu z podwójnym pływakiem jest mniej dokładny, dlatego używa się podwójnego obliczenia matematycznego.
Wniosek:
Cóż, musisz generalnie użyć podwójnego, ponieważ zapewnia dokładność, która jest naszym głównym motorem przez większość czasu.