完整路径:java.lang.Double
- Double是基元类型double的包装对象。保存64位浮点数
// double的正无穷表示
public static final double POSITIVE_INFINITY = 1.0 / 0.0;
// double的负无穷表示
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
// double的NaN(Not a Number)表示
public static final double NaN = 0.0d / 0.0;
// double的最大值
public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308
// double的最小正常标准值
public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308
// double的最小值(正数)
public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324
// double的最大指数
public static final int MAX_EXPONENT = 1023;
// double的最小指数
public static final int MIN_EXPONENT = -1022;
// double的bit数量
public static final int SIZE = 64;
// double的字节数量
public static final int BYTES = SIZE / Byte.SIZE;
- double浮点数存储分为3个部分,符号位(1bit),指数位(11bit),尾数部分(52bit)
精度有时可能出现不准,因为有些十进制小数换算成二进制时可能会超过尾数部分的长度。
当业务需要精确的结果时请使用BigDecimal,因为BigDecimal在计算时会先将小数转成整数后计算,这样保证了不会存在精度丢失的情况