Java Language Il doppio primitivo


Esempio

Un double è un numero a virgola mobile IEEE 754 a 64 bit a doppia precisione.

double example = -7162.37;
double myDouble = 974.21;
double anotherDouble = 658.7;

double addedDoubles = myDouble + anotherDouble; // 315.51
double subtractedDoubles = myDouble - anotherDouble; // 1632.91

double scientificNotationDouble = 1.2e-3;    // 0.0012

A causa del modo in cui vengono memorizzati i numeri in virgola mobile, molti numeri non hanno una rappresentazione esatta.

double notExact = 1.32 - 0.42; // result should be 0.9
System.out.println(notExact); // 0.9000000000000001

Mentre l'uso del double va bene per la maggior parte delle applicazioni, non è necessario utilizzare né floatdouble per memorizzare numeri precisi come la valuta. Invece, dovrebbe essere usata la classe BigDecimal

Il valore predefinito di un double è 0.0d

public double defaultDouble;    // defaultDouble == 0.0

Nota: Double.POSITIVE_INFINITY , Double.NEGATIVE_INFINITY , Double.NaN sono valori double . NaN sta per risultati di operazioni che non possono essere determinate, come la divisione di 2 valori infiniti. Inoltre 0d e -0d sono diversi, ma == si -0d vero:

double d1 = 0d;
double d2 = -0d;
System.out.println(d1 == d2); // true
System.out.println(1d / d1); // Infinity
System.out.println(1d / d2); // -Infinity
System.out.println(Double.POSITIVE_INFINITY / Double.POSITIVE_INFINITY); // NaN