Java double类型

示例

Double 是一个双精度64位 IEEE 754浮点数。

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

由于浮点数的存储方式,许多数字没有确切的表示形式。

double notExact = 1.32 - 0.42; // 结果应该是0.9
System.out.println(notExact); // 0.9000000000000001

虽然对大多数应用程序使用double是可以的,但是float和double都不应该用于存储诸如currency之类的精确数字。相反,应该使用BigDecimal类

double的默认值为0.0d

public double defaultDouble;    // defaultDouble == 0.0

注: Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY,Double.NaN都是double值。NaN代表无法确定的运算结果,例如除以2个无穷大值。此外0d和-0d有所不同,但==得出的结果是true:

double d1 = 0d;
double d2 = -0d;
System.out.println(d1 == d2); // 真
System.out.println(1d / d1); // 无限
System.out.println(1d / d2); // -无限
System.out.println(Double.POSITIVE_INFINITY / Double.POSITIVE_INFINITY); // N