logo

Float Vs Double Java

În Java, Java.

întreg comparat cu java

Există două tipuri de tipuri de date în virgulă mobilă:

  • tip de date float
  • tip de date dublu

Ambele, float și double reprezintă numerele în virgulă mobilă care stochează valorile zecimale.

Tip de date în virgulă mobilă Valori Dimensiune (biți)* Cerință de stocare (octeți) Valoare implicită Precizie Cifre zecimale Gamă Precizie
pluti IEEE 754 în virgulă mobilă 32 4 0,0f Singur 6 cifre zecimale 3.4e-038 până la 3.4e+038 Scăzut
dubla IEEE 754 în virgulă mobilă 64 8 0,0d Dubla 15 cifre zecimale 1.7e-308 până la 1.7e+308 Înalt

*Dimensiunile biților includ următoarele:

Biți pluti dubla
Semn 1 1
Exponent 8 unsprezece
mantisa 23 52

Precizie unică: Se compune din unu bit semn (S), opt biți exponenți (E) și douăzeci și trei biți de mantisă (M).

Precizie dubla: Se compune din unu bit semn (S), unsprezece biți exponenți (E) și cincizeci si doi biți de mantisă (M).

Float Vs Double Java

tip de date float

Este un număr în virgulă mobilă IEEE 754 (Standard for Floating-Point Arithmetic) de 32 de biți, cu o singură precizie. Înseamnă că oferă o precizie de 6-7 cifre zecimale. Este folosit dacă dorim să folosim memoria în mod eficient, deoarece necesită mai puțină memorie în comparație cu tipul de date dublu. Pentru a defini o valoare flotantă, trebuie să folosim un sufix f sau F. Valoarea sa implicită este 0,0f. În mod implicit, numerele float sunt tratate ca duble în Java.

De exemplu, dacă definim un număr flotant ca:

 float height = 167.7 

Declarația de mai sus a variabilei float dă eroarea de compilare. Putem corecta eroarea adăugând un sufix f sau F.

 float height = 167.7f or float height = 167.7F 

tip de date dublu

Tipul de date dublu este un număr în virgulă mobilă IEEE 754 cu precizie dublă de 64 de biți. Înseamnă că oferă o precizie de 15-16 cifre zecimale. Consumă mai multă memorie în comparație cu tipul de date float. Este folosit pentru a stoca valori zecimale. Valoarea sa implicită este 0,0d. Este opțional să adăugați sufixul d sau D. De exemplu:

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

float vs tip de date dublu

Tipul de date dublu este mai precis decât tipul de date float. Următorul tabel rezumă diferențele dintre tipurile de date float și double.

Bază tip de date float tip de date dublu
Memorie Ocupă 4 octeți. Ocupă 8 octeți.
Precizie Precizia sa este scăzut . Precizia sa este înalt .
Precizie Urmează cu o singură precizie (6-7 cifre zecimale). Urmează precizie dubla (15-16 cifre zecimale).
Cuvânt cheie folosit The pluti cuvântul cheie este folosit pentru a defini un număr flotant. The dubla cuvântul cheie este folosit pentru a defini un număr cu precizie dublă.
Clasa Wrapper Clasa sa de ambalare este java.lang.Float. Clasa sa de ambalare este java.lang.Dublu.
Tip de date implicit Java nu îl folosește ca număr implicit în virgulă mobilă. Este Mod implicit tip de date pentru numere în virgulă mobilă.
Pierdere de date Vor exista nicio pierdere de date dacă convertim float în double. Vor exista pierdere de date dacă convertim dublu în float.
Utilizări Ar trebui folosit unde mai puțină precizie este necesar, iar stocarea este o constrângere. Este folosit unde mai multa acuratete este necesar și necesită, de asemenea, mai multă precizie.
Sufix Folosește F sau f ca sufix. Este obligatoriu să adăugați un sufix dacă declarați o variabilă float. Folosește d sau D ca sufix. Este opțional să adăugați un sufix dacă declarați o variabilă dublă.
Reprezentare 28,96f sau 28,96 F 12.5 sau 12,5D sau 12,5d

Asemănări între tipul de date float și double

  • Numerele reale pot fi reprezentate prin ambele tipuri de date.
  • Ambele tipuri de date float și double nu sunt precise, prin urmare, sunt valori aproximative.

Ce tip de date în virgulă mobilă în Java ar trebui să folosim?

double este mai precis decât float. Deci, dacă este necesar un rezultat mai precis și mai precis, utilizați dublu. Un alt motiv pentru a folosi dublu este că, dacă numărul nu se potrivește în intervalul oferit de float, atunci folosiți dublu. Ar trebui să folosim float dacă avem constrângere de memorie, deoarece ocupă jumătate de spațiu decât dublu.

Vă recomandăm să utilizați double over float dacă nu există constrângeri de memorie și spațiu și când este nevoie de mai multă precizie. Este recomandabil să mergeți cu float, dacă memoria este o problemă, iar rezultatul în 16 cifre zecimale de precizie nu este necesar.

Următoarele două programe Java arată clar diferențele dintre tipul de date float și dublu.

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 } } 

Ieșire:

 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 } } 

Ieșire:

 x/y = 0.3333333333333333 

Prin cele două exemple de mai sus, este clar că tipul de date dublu necesită mai multă memorie pentru a stoca un număr cu precizie dublă și oferă, de asemenea, rezultatul mai precis cu până la 16 cifre zecimale. În timp ce tipul de date float ocupă mai puțin spațiu pentru a stoca numere cu precizie unică și oferă rezultate cu până la 6 zecimale.