logo

Float protiv dvostruke Jave

Na Javi, Javi.

Postoje dvije vrste tipova podataka s pomičnim zarezom:

  • tip podataka float
  • dvostruki tip podataka

I float i double predstavljaju brojeve s pomičnim zarezom koji pohranjuju decimalne vrijednosti.

iterator java mapa
Tip podataka s pomičnim zarezom Vrijednosti Veličina (bitovi)* Zahtjevi za pohranu (bajtovi) Zadana vrijednost Preciznost Decimalne znamenke Raspon Točnost
plutati IEEE 754 s pomičnim zarezom 32 4 0.0f Singl 6 decimalnih znamenki 3.4e-038 do 3.4e+038 Niska
dvostruko IEEE 754 s pomičnim zarezom 64 8 0.0d Dvostruko 15 decimalnih znamenki 1.7e-308 do 1.7e+308 visoko

*Bitovi veličine uključuju sljedeće:

Komadići plutati dvostruko
Znak 1 1
Eksponent 8 jedanaest
Kazaljka 23 52

Jednostruka preciznost: Sastoji se od jedan predznak (S), osam bitovi eksponenta (E) i dvadeset tri bitovi mantise (M).

Dvostruka preciznost: Sastoji se od jedan predznak (S), jedanaest bitovi eksponenta (E) i pedeset i dvije bitovi mantise (M).

Float protiv dvostruke Jave

tip podataka float

To je 32-bitni broj s pomičnim zarezom jednostruke preciznosti IEEE 754 (Standard za aritmetiku s pomičnim zarezom). To znači da daje 6-7 decimalnih znamenki preciznosti. Koristi se ako želimo učinkovito koristiti memoriju jer zauzima manje memorije u usporedbi s dvostrukim tipom podataka. Da bismo definirali float vrijednost, moramo koristiti sufiks f ili F. Njegova zadana vrijednost je 0.0f. Prema zadanim postavkama, float brojevi se tretiraju kao double u Javi.

Na primjer, ako definiramo float broj kao:

postavlja u Javi
 float height = 167.7 

Gornja deklaracija varijable float daje pogrešku kompilacije. Grešku možemo ispraviti dodavanjem sufiksa f ili F.

 float height = 167.7f or float height = 167.7F 

dvostruki tip podataka

Double tip podataka je 64-bitni IEEE 754 broj s pomičnim zarezom dvostruke preciznosti. To znači da daje 15-16 decimalnih znamenki preciznosti. Troši više memorije u usporedbi s float tipom podataka. Koristi se za pohranjivanje decimalnih vrijednosti. Njegova zadana vrijednost je 0.0d. Nije obavezno dodati sufiks d ili D. Na primjer:

 double price = 987.90D or double price = 987.90d or double price = 987.90 

float nasuprot dvostrukom tipu podataka

Double tip podataka točniji je od tipa podataka float. Sljedeća tablica sažima razlike između tipova podataka float i double.

veličine lateks slova
Osnova tip podataka float dvostruki tip podataka
Memorija Zauzima 4 bajtova. Zauzima 8 bajtova.
Točnost Njegova točnost je nizak . Njegova točnost je visoka .
Preciznost Slijedi jednostruka preciznost (6-7 decimalnih znamenki). Slijedi dvostruka preciznost (15-16 decimalnih znamenki).
Korištena ključna riječ The plutati ključna riječ se koristi za definiranje float broja. The dvostruko ključna riječ koristi se za definiranje broja dvostruke preciznosti.
Klasa omotača Njegova klasa omotača je java.lang.Float. Njegova klasa omotača je java.lang.Double.
Zadana vrsta podataka Java ga ne koristi kao zadani broj s pomičnim zarezom. To je zadano tip podataka za brojeve s pokretnim zarezom.
Gubitak podataka Biti će nema gubitka podataka ako float pretvorimo u double. Biti će gubitak podataka ako pretvorimo double u float.
Koristi Treba ga koristiti gdje manja točnost je potrebno, a skladištenje je ograničenje. Koristi se gdje više točnosti je potrebno i također zahtijeva veću preciznost.
Sufiks Koristi se F ili f kao sufiks. Obavezno je dodati sufiks ako deklarirate float varijablu. Koristi se d ili D kao sufiks. Nije obavezno dodati sufiks ako deklarirate dvostruku varijablu.
Reprezentacija 28.96f ili 28,96F 12.5 ili 12.5D ili 12.5d

Sličnosti između tipa podataka float i double

  • Realni brojevi mogu se prikazati s obje vrste podataka.
  • I float i double tipovi podataka nisu precizni, stoga su približne vrijednosti.

Koji bismo tip podataka s pomičnim zarezom u Javi trebali koristiti?

double je precizniji od float. Dakle, ako je potreban precizniji i točniji rezultat, koristite dvostruko. Još jedan razlog za korištenje double je da ako broj ne odgovara rasponu koji nudi float tada koristite double. Trebali bismo koristiti float ako imamo memorijsko ograničenje jer zauzima pola prostora nego dvostruko.

Preporučamo da koristite double over float ako nema ograničenja memorije i prostora i kada je potrebna veća preciznost. Preporučljivo je koristiti float ako je memorija problem, a rezultat u 16 preciznih decimalnih znamenki nije potreban.

popis fontova u gimp-u

Sljedeće dvije Java programi jasno pokazuju razlike između tipa podataka float i double.

FloatDataTypeExample.java

 public class FloatDataTypeExample { public static void main(String args[]) { float x = 1.0f, y = 3.0f; //defining x and y as float float z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Izlaz:

 x/y = 0.33333334 

DoubleDataTypeExample.java

 public class DoubleDataTypeExample { public static void main(String args[]) { double x = 1.0, y = 3.0; //defining x and y as double double z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Izlaz:

 x/y = 0.3333333333333333 

Kroz gornja dva primjera jasno je da dvostruki tip podataka zahtijeva više memorije za pohranjivanje broja dvostruke preciznosti i daje točniji rezultat do 16 decimalnih znamenki. Dok vrsta podataka float zauzima manje prostora za pohranjivanje brojeva jednostruke preciznosti i daje rezultate do 6 decimalnih mjesta.