在 Java 中,Double(双精度浮点数)的运算主要使用 基本类型 double 或 包装类 Double。下面从常见运算方式、注意事项、工具类使用几个方面说明。
double)double a = 1.1;
double b = 2.2;
double sum = a + b; // 加法
double diff = a - b; // 减法
double product = a * b; // 乘法
double quotient = a / b; // 除法
System.out.println(sum);
⚠️ 注意:
double 是二进制浮点数,存在精度误差:
System.out.println(0.1 + 0.2); // 0.30000000000000004
Double 的使用Double x = 1.5;
Double y = 2.5;
double result = x + y; // 自动拆箱
常用方法:
Double.parseDouble("3.14"); // 字符串转 double
Double.valueOf(3.14);
Double.MAX_VALUE;
Double.MIN_VALUE;
Double.isNaN(x);
Double.isInfinite(x);
Math 类)double a = 9.0;
Math.sqrt(a); // 平方根
Math.pow(a, 2); // 幂运算
Math.abs(-3.5); // 绝对值
Math.round(3.6); // 四舍五入(返回 long)
Math.floor(3.6); // 向下取整
Math.ceil(3.2); // 向上取整
Math.max(a, b);
Math.min(a, b);
如果涉及金额、精确计算,不要用 Double,用 BigDecimal:
import java.math.BigDecimal;
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal sum = a.add(b);
System.out.println(sum); // 0.3
⚠️ 不要用:
new BigDecimal(0.1) // 错误,仍有精度问题
==double a = 0.1 + 0.2;
double b = 0.3;
System.out.println(a == b); // false
✅ 正确方式:
Math.abs(a - b) < 1e-9;
double x = 1.0 / 0.0; // Infinity
double y = 0.0 / 0.0; // NaN
| 场景 | 推荐方式 |
|---|---|
| 普通科学计算 | double + Math |
| 金额 / 精确计算 | BigDecimal |
| 字符串转换 | Double.parseDouble |
| 浮点比较 | 误差范围比较 |
如果你有具体业务场景(比如金额计算、坐标运算、性能要求),我可以给你更合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。