在 Java 里,Double 是 double 的包装类(引用类型),用来表示 64 位双精度浮点数。下面从 基本用法、常见场景、注意事项 三部分说明。
double a = 3.14; // 基本类型
Double b = 3.14; // 包装类型(自动装箱)
Double c = Double.valueOf(3.14);
Double d = 2.5; // 自动装箱
double e = d; // 自动拆箱
Double d = Double.parseDouble("3.14");
Double d2 = Double.valueOf("3.14");
String s = d.toString();
Double.MAX_VALUE; // 最大值
Double.MIN_VALUE; // 最小正值
Double.POSITIVE_INFINITY; // 正无穷
Double.NEGATIVE_INFINITY; // 负无穷
Double.NaN; // 非数字
Double.isNaN(d);
Double.isInfinite(d);
List<Double> list = new ArrayList<>();
list.add(1.1);
list.add(2.2);
⚠️
List<double>是不允许的,只能用Double
double x = 0.1 + 0.2;
System.out.println(x); // 0.30000000000000004
⚠️ 浮点数不精确,金钱计算不要用 Double
✅ 正确做法:
BigDecimal money = new BigDecimal("0.1")
.add(new BigDecimal("0.2"));
Double a = 1.1;
Double b = 2.2;
a.compareTo(b); // -1, 0, 1
⚠️ 不要用 == 比较 Double 值:
Double x = 0.1 + 0.2;
Double y = 0.3;
System.out.println(x == y); // false
| 对比项 | double | Double |
|---|---|---|
| 类型 | 基本类型 | 包装类 |
| 能否为 null | ❌ | ✅ |
| 能否放集合 | ❌ | ✅ |
| 性能 | 高 | 略低 |
public class Test {
public static void main(String[] args) {
Double a = 1.5;
Double b = 2.5;
Double sum = a + b;
System.out.println(sum);
}
}
如果你有 具体场景(比如:计算、JSON、数据库、算法、精度问题),可以告诉我,我可以给你更针对性的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。