Java float vs Double - Poznaj 9 unikalnych porównań

Spisie treści:

Anonim

Różnice między Java float a Double

Typ danych zmiennoprzecinkowych to 32-bitowy zmiennoprzecinkowy IEEE 754 o pojedynczej precyzji. Zakres wartości wykracza poza zakres tej dyskusji, ale jest głównie określony w sekcji Typy zmiennoprzecinkowe, formaty i wartości specyfikacji języka Java.

Podwójny typ danych to zmiennoprzecinkowa 64-bitowa precyzja IEEE 754 o podwójnej precyzji. Jego zakres wartości wykracza poza zakres tej dyskusji, ale jest określony w sekcji Typy zmiennoprzecinkowe, formaty i wartości specyfikacji języka Java.

Liczba zmiennoprzecinkowa służy głównie do oszczędzania pamięci w dużych tablicach liczb zmiennoprzecinkowych. Zawsze musimy pamiętać, że tego typu danych nie należy nigdy używać do precyzyjnych wartości, takich jak waluta.

Podwójny typ danych jest zwykle domyślnym wyborem dla wartości dziesiętnych. Typu danych nigdy nie należy używać do precyzyjnych wartości, takich jak waluta.

Wartości domyślne

Typ danychWartość domyślna (dla pól)
pływak0, 0f
podwójnie0, 0d

Zmienny typ danych w Javie przechowuje wartość dziesiętną z 6-7 całkowitymi cyframi dokładności. Na przykład 12.12345 można zapisać jako liczbę zmiennoprzecinkową, ale 12.123456789 nie można zapisać jako zmiennoprzecinkową. Podczas reprezentowania typu danych zmiennoprzecinkowych w Javie powinniśmy dołączyć literę f na końcu typu danych, w przeciwnym razie zostanie zapisany jako podwójny.

Podwójny typ danych przechowuje wartości dziesiętne z dokładnością 15-16 cyfr. Wartość domyślna to 0, 0d, co oznacza, że ​​jeśli nie dodasz f lub d na końcu dziesiętnej, wartość zostanie zapisana jako podwójna w Javie.

Bezpośrednie porównanie między Java float vs Double (infografiki)

Poniżej znajduje się 7 najlepszych porównań między Java float a Double

Kluczowe różnice między Java float a Double

Poniżej znajduje się lista punktów wyjaśniających kluczową różnicę między zmiennoprzecinkową i Double w Javie

  1. Podwójny typ danych jest bardziej precyzyjny niż zmiennoprzecinkowy w Javie. Domyślnie liczby zmiennoprzecinkowe są podwójne w Javie. Aby zapisać je w zmiennej float, musisz je rzutować jawnie lub przyrostek za pomocą „f” lub „F”.
  2. Float używa 1 bitu dla znaku, 8 bitów dla wykładnika i 23 bity dla mantysy, ale podwójne używa 1 bitu dla znaku, 11 bitów dla wykładnika i 52 bity dla mantysy.
  3. Jest kilka ważnych rzeczy, które możemy wziąć pod uwagę przy wyborze Java float i Double. Możemy również natknąć się na sytuacje, w których musimy użyć określonego typu danych, dopóki i jeśli nie uważasz, że Twój wynik nie zmieści się w liczbach zmiennoprzecinkowych, wówczas w tej sytuacji możesz zdecydować się na podwójne.
  4. Zarówno Java float, jak i Double są typami przybliżonymi, ale różnią się przestrzenią pamięci i innymi rzeczami.
  5. Jeśli chcesz porównać java i float, zawsze preferuj Big Decimal, a kiedy pracujesz z konstruktorem Big Decimal, musisz użyć parametru string.

Java float vs Java Double Tabela porównawcza

Poniżej znajduje się tabela porównawcza między Java float a Double

PODSTAWA DO

PORÓWNANIE

Float JavaJava Double
DefinicjaTyp danych zmiennoprzecinkowych to 32-bitowy system pojedynczej precyzjiPodwójny typ danych to 64-bitowa podwójna precyzja
Stosowaniemniej precyzjiWiększa precyzja
KorzyściObszerne biblioteki wsparcia.

Open source i rozwój społeczności.

Więcej funkcji do tworzenia stron internetowych i skoncentrowanych na sieci
PrzechowywanieFloat potrzebuje 32-bitowej pamięci (It

Wystarczy zapisać 4 bajty, aby zapisać zmienną)

Double wymaga 64-bitowej pamięci (It

zajmuje 8 bajtów do przechowywania zmiennej)

NaukowcyLiczba zmiennoprzecinkowa to 32-bitowa zmiennoprzecinkowa IEEE 754Podwójny jest 64-bitowym zmiennoprzecinkowym IEEE 754.
PrecyzjaDokładność zmiennoprzecinkowa wynosi od 6 do 7 cyfr dziesiętnychDouble może zapewnić precyzję do 15 do 16 miejsc po przecinku.
ZasięgPływak ma niższy zasięg w porównaniu do podwójnego.Double ma wyższy zasięg.

Wniosek - Java float vs Double

Chociaż zarówno liczba zmiennoprzecinkowa Java, jak i liczba podwójna mogą być używane do reprezentowania liczb zmiennoprzecinkowych, istnieje kilka rzeczy, które możemy rozważyć, wybierając między liczbą zmiennoprzecinkową Java a liczbą podwójną. Chociaż oba zmiennoprzecinkowe Java vs Double są typami przybliżonymi, jeśli potrzebujesz dokładniejszych i dokładniejszych wyników, użyj podwójnego. Użyj float, jeśli masz ograniczenie pamięci, ponieważ zajmuje prawie połowę więcej miejsca niż podwójna. Jeśli twoje liczby nie mieszczą się w zakresie oferowanym przez float, użyj podwójnego. Uważaj jednak na obliczenia i reprezentacje zmiennoprzecinkowe, nie używaj podwójnego ani zmiennoprzecinkowego do obliczania pieniężnego, zamiast tego używaj Big Decimal.

Na tym polega różnica między zmiennoprzecinkową i podwójną w Javie. Pamiętaj, że domyślnie liczby zmiennoprzecinkowe w Javie są podwójne, jeśli chcesz je zapisać w zmiennej zmiennoprzecinkowej, musisz je rzutować jawnie lub sufiksować za pomocą znaku „f” lub „F”.

Zarówno zmiennoprzecinkowe Java w porównaniu z Double jest używane do reprezentowania liczb rzeczywistych w Javie, tj. Liczb z ułamkami lub kropkami dziesiętnymi.

Należy użyć operatora logicznego, np.> Lub <, aby porównać zmienne zmiennoprzecinkowe Java i zmienne Double, zamiast = i! = ponieważ nie są precyzyjne.

Najlepszą praktyką jest również wybranie typu danych, który zajmuje mniej miejsca, jeśli jest wystarczający dla przechowywanych danych, więc wybierz opcję float zamiast double, jeśli jesteś zadowolony z precyzji i zasięgu, jednak double jest bardziej dokładny niż float.

Podwójne i zmiennoprzecinkowe nie są używane do reprezentowania wartości, które wymagają bardzo wysokiej precyzji. Na przykład do przechowywania wartości walutowych nie jest dobrym rozwiązaniem stosowanie podwójnego lub zmiennoprzecinkowego, zamiast tego Java ma klasę „Big Decimal”, która określa dokładną liczbę cyfr po przecinku, w tym zaokrąglanie w górę lub w dół.

Zarówno podwójny, jak i zmiennoprzecinkowy typ danych są używane do reprezentowania liczb zmiennoprzecinkowych w Javie, podwójny typ danych jest bardziej precyzyjny niż zmiennoprzecinkowy. Podwójna zmienna może zapewnić dokładność do 15 do 16 miejsc po przecinku w porównaniu z precyzją zmiennoprzecinkową od 6 do 7 cyfr po przecinku. Inną znaczącą różnicą między zmiennoprzecinkową i podwójną w Javie jest ich zapotrzebowanie na pamięć, podwójna jest droższa niż zmiennoprzecinkowa. Przechowywanie zmiennej zajmuje 8 bajtów, a liczba zmiennoprzecinkowa zajmuje tylko 4 bajty. Oznacza to, że jeśli pamięć jest ograniczeniem, lepiej jest użyć liczby zmiennoprzecinkowej niż podwójnej. Typ podwójny ma również większy zakres niż liczba zmiennoprzecinkowa, a jeśli twoje liczby nie pasują do liczby zmiennoprzecinkowej, musisz użyć podwójnej wartości w Javie. Warto również zauważyć, że liczby zmiennoprzecinkowe lub liczby rzeczywiste są domyślnie podwójne w Javie. Jeśli chcesz przechowywać je w zmiennej float, musisz je rzutować lub użyć przedrostka „f” lub „F”.

Polecany artykuł

To był przydatny przewodnik po różnicach między Java float a Double tutaj omówiliśmy ich znaczenie, porównanie Head to Head, kluczową różnicę i wnioski. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Niesamowite różnice Java Vector vs ArrayList
  2. Który jest najlepszy Java Performance lub Python
  3. Java vs Python - 9 najważniejszych ważnych porównań
  4. Hadoop vs Cassandra
  5. Scala vs Java Performance: Który jest lepszy?
  6. Hadoop vs Spark i jakie są ich zalety
  7. ACCA vs CIMA: Korzyści