A Giava, Giava.
pulsante nel css centrale
Esistono due tipi di dati in virgola mobile:
- tipo di dati float
- doppio tipo di dati
Entrambi, float e double rappresentano i numeri a virgola mobile che memorizzano i valori decimali.
Tipo di dati a virgola mobile | Valori | Dimensioni (bit)* | Requisiti di archiviazione (byte) | Valore di default | Precisione | Cifre decimali | Allineare | Precisione |
---|---|---|---|---|---|---|---|---|
galleggiante | IEEE 754 in virgola mobile | 32 | 4 | 0.0f | Separare | 6 cifre decimali | da 3.4e-038 a 3.4e+038 | Basso |
Doppio | IEEE 754 in virgola mobile | 64 | 8 | 0.0d | Doppio | 15 cifre decimali | da 1.7e-308 a 1.7e+308 | Alto |
*Le dimensioni includono quanto segue:
Bit | galleggiante | Doppio |
---|---|---|
Cartello | 1 | 1 |
Esponente | 8 | undici |
Mantissa | 23 | 52 |
Precisione singola: Consiste in uno bit di segno (S), otto bit dell'esponente (E) e ventitré pezzi di mantissa (M).
Doppia precisione: Consiste in uno bit di segno (S), undici bit dell'esponente (E) e cinquantadue pezzi di mantissa (M).
tipo di dati float
È un numero in virgola mobile IEEE 754 (Standard for Floating-Point Arithmetic) a 32 bit e precisione singola. Ciò significa che fornisce una precisione di 6-7 cifre decimali. Viene utilizzato se vogliamo utilizzare la memoria in modo efficace perché richiede meno memoria rispetto al doppio tipo di dati. Per definire un valore float, dobbiamo utilizzare un suffisso fo F. Il suo valore predefinito è 0.0f. Per impostazione predefinita, i numeri float vengono trattati come double in Java.
polimorfismo di Java
Ad esempio, se definiamo un numero float come:
float height = 167.7
La dichiarazione precedente della variabile float fornisce l'errore di compilazione. Possiamo correggere l'errore aggiungendo un suffisso fo F.
float height = 167.7f or float height = 167.7F
doppio tipo di dati
Il tipo di dati double è un numero a virgola mobile IEEE 754 a doppia precisione a 64 bit. Significa che fornisce una precisione di 15-16 cifre decimali. Consuma più memoria rispetto al tipo di dati float. Viene utilizzato per memorizzare valori decimali. Il suo valore predefinito è 0.0d. È facoltativo aggiungere il suffisso d o D. Ad esempio:
double price = 987.90D or double price = 987.90d or double price = 987.90
float Vs double tipo di dati
Il tipo di dati double è più accurato del tipo di dati float. La tabella seguente riepiloga le differenze tra i tipi di dati float e double.
Base | tipo di dati float | doppio tipo di dati |
---|---|---|
Memoria | Occupa 4 byte. | Occupa 8 byte. |
Precisione | La sua precisione è Basso . | La sua precisione è alto . |
Precisione | Segue precisione singola (6-7 cifre decimali). | Segue doppia precisione (15-16 cifre decimali). |
Parola chiave utilizzata | IL galleggiante la parola chiave viene utilizzata per definire un numero float. | IL Doppio La parola chiave viene utilizzata per definire un numero a precisione doppia. |
Classe wrapper | La sua classe wrapper è java.lang.Float. | La sua classe wrapper è java.lang.Double. |
Tipo di dati predefinito | Java non lo utilizza come numero a virgola mobile predefinito. | È il predefinito tipo di dati per numeri a virgola mobile. |
Perdita di dati | Ci sarà nessuna perdita di dati se convertiamo float in double. | Ci sarà perdita di dati se convertiamo double in float. |
Usi | Dovrebbe essere usato dove meno precisione è obbligatorio e l'archiviazione è un vincolo. | È usato dove maggiore precisione è necessario e richiede anche maggiore precisione. |
Suffisso | Utilizza F O F come suffisso. È obbligatorio aggiungere un suffisso se stai dichiarando una variabile float. | Utilizza D O D come suffisso. È facoltativo aggiungere un suffisso se stai dichiarando una doppia variabile. |
Rappresentazione | 28.96f O 28,96F | 12.5 O 12,5D O 12.5d |
Somiglianze tra tipo di dati float e double
- I numeri reali possono essere rappresentati da entrambi i tipi di dati.
- Entrambi i tipi di dati float e double non sono precisi, quindi hanno un valore approssimativo.
Quale tipo di dati in virgola mobile in Java dovremmo usare?
double è più preciso di float. Quindi, se è richiesto un risultato più preciso e accurato, utilizzare il doppio. Un altro motivo per utilizzare double è che se il numero non rientra nell'intervallo offerto dal float, utilizzare double. Dovremmo usare float se abbiamo vincoli di memoria perché occupa metà spazio rispetto al doppio.
Ti consigliamo di utilizzare double over float se non ci sono vincoli di memoria e spazio e quando è necessaria maggiore precisione. È consigliabile utilizzare il float, se la memoria è un problema e non è richiesto il risultato in 16 cifre decimali di precisione.
I due seguenti Programmi Java mostrano chiaramente le differenze tra il tipo di dati float e double.
shweta tiwari
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 } }
Produzione:
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 } }
Produzione:
x/y = 0.3333333333333333
Attraverso i due esempi precedenti, è chiaro che il tipo di dati double richiede più memoria per memorizzare un numero a precisione doppia e fornisce anche un risultato più accurato fino a 16 cifre decimali. Mentre il tipo di dati float richiede meno spazio per memorizzare numeri a precisione singola e fornisce risultati fino a 6 cifre decimali.