温馨提示×

温馨提示×

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

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

java Double 双精度如何转换

发布时间:2026-10-26 11:22:02 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 里,Double(双精度浮点数,64 位)的“转换”通常分为几类场景。下面按最常见用法系统说明。


一、String ↔ Double

1. String 转 Double

// 推荐(允许 null,返回 Double 对象)
Double d1 = Double.valueOf("3.14");

// 基本类型 double
double d2 = Double.parseDouble("3.14");

// 可能抛异常
NumberFormatException

2. Double 转 String

Double d = 3.14;

String s1 = d.toString();
String s2 = String.valueOf(d);
String s3 = String.format("%.2f", d); // 格式化

二、基本类型 ↔ 包装类型

double a = 3.14;
Double b = a;        // 自动装箱
double c = b;        // 自动拆箱

Double d = Double.valueOf(a);
double e = d.doubleValue();

三、Double ↔ 整型(int / long)

Double 转 int / long(会截断小数)

Double d = 9.99;

int i = d.intValue();     // 9
long l = d.longValue();   // 9

// 或
int i2 = (int)(double)d;  // 强制转换

int / long 转 Double

int a = 10;
Double d = (double) a;
Double d2 = Double.valueOf(a);

四、Double ↔ float

Double d = 3.14;
float f = d.floatValue();

Float f2 = 3.14f;
Double d2 = f2.doubleValue();

⚠️ 注意:float → double 安全,double → float 可能丢精度


五、Double ↔ BigDecimal(精度敏感场景)

import java.math.BigDecimal;

Double d = 3.14;

// 推荐方式(避免二进制误差)
BigDecimal bd = BigDecimal.valueOf(d);

// 不推荐(可能引入精度问题)
BigDecimal bad = new BigDecimal(d);

// 反向
Double d2 = bd.doubleValue();

✅ 金融计算必须用 BigDecimal


六、Double 与二进制 / 十六进制

Double d = 3.14;

long bits = Double.doubleToLongBits(d);
Double d2 = Double.longBitsToDouble(bits);

七、常见坑

1. null 问题

Double d = null;
double x = d; // NullPointerException

2. 精度问题

System.out.println(0.1 + 0.2); // 0.30000000000000004

3. 比较大小

Double a = 0.1 + 0.2;
Double b = 0.3;

a.equals(b);        // false(不推荐)
Math.abs(a - b) < 1e-9; // 推荐

八、总结速查表

转换 方式
String → Double Double.valueOf()
Double → String String.valueOf()
Double → int intValue()
int → Double Double.valueOf()
Double → BigDecimal BigDecimal.valueOf()
精确计算 BigDecimal

如果你有具体使用场景(如:数据库、JSON、Excel、金融计算、前端传参),可以告诉我,我可以给你更针对性的示例。

向AI问一下细节

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

AI
助
手