温馨提示×

温馨提示×

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

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

java Float浮点数与double区别

发布时间:2026-11-10 08:43:39 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,float 和 double 都是浮点数类型,用来表示带小数部分的数字,但它们在精度、占用空间、使用方式和适用范围上有明显区别。


一、基本概念

类型 关键字 位数 字节 精度(十进制有效数字) 默认值
单精度浮点 float 32 位 4 字节 约 6–7 位 0.0f
双精度浮点 double 64 位 8 字节 约 15–16 位 0.0d

二、主要区别

1️⃣ 精度不同(最重要)

  • float:精度较低,适合对精度要求不高的场景
  • double:精度更高,是 Java 中默认的浮点类型
float f = 1.123456789f;
double d = 1.123456789012345;

System.out.println(f); // 可能丢失精度
System.out.println(d); // 精度更高

2️⃣ 内存占用不同

  • float:4 字节
  • double:8 字节

✅ 在大量数据存储(如数组、图形处理)时,float 更省内存
✅ 在科学计算、金融计算中,double 更安全


3️⃣ 字面量写法不同

Java 中 小数默认是 double

float f = 1.2f;   // 必须加 f
double d = 1.2;   // 可以不加 d
// double d = 1.2d;

❌ 错误示例:

float f = 1.2; // 编译错误

4️⃣ 运算性能

  • 在现代 CPU 上,double 和 float 性能差距很小
  • 某些硬件(GPU、嵌入式)上 float 更快

5️⃣ 使用场景建议

场景 推荐
普通计算 double
科学计算 double
游戏 / 图形 float
嵌入式 / 内存敏感 float
金额计算 ❌ 都不推荐(用 BigDecimal)

三、⚠️ 重要注意点(浮点数通病)

浮点数有精度误差

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

✅ 金额计算应使用:

BigDecimal

四、总结一句话

float 是单精度、省内存;double 是双精度、精度高、Java 默认使用。

如果你愿意,我也可以帮你:

  • 对比 float / double / BigDecimal
  • 解释 IEEE 754 浮点规则
  • 看具体代码中的精度问题
向AI问一下细节

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

AI
助
手