温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Double 双精度怎么运算

发布时间:2026-10-26 10:28:00 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 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) // 错误,仍有精度问题

五、常见坑总结

  1. 浮点比较不要用 ==
double a = 0.1 + 0.2;
double b = 0.3;
System.out.println(a == b); // false

✅ 正确方式:

Math.abs(a - b) < 1e-9;
  1. 除零
double x = 1.0 / 0.0; // Infinity
double y = 0.0 / 0.0; // NaN

六、总结建议

场景 推荐方式
普通科学计算 double + Math
金额 / 精确计算 BigDecimal
字符串转换 Double.parseDouble
浮点比较 误差范围比较

如果你有具体业务场景(比如金额计算、坐标运算、性能要求),我可以给你更合适的写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手