java支持科学计数法定义浮点变量,e/e表示10的幂次,默认为double类型;float需加f/f后缀,指数必须为十进制整数,不可为小数或表达式,十六进制浮点用p/p表示2的幂次。

Java 中可以直接用科学计数法字面量定义 float 或 double 类型变量,语法简洁,但要注意后缀和精度细节。
基本写法:e 或 E 表示 10 的幂次
科学计数法格式为:系数 e 指数(或 E),其中指数必须是整数。Java 默认按 double 解析:
-
double d1 = 1.23e4;→ 等价于1.23 × 10⁴ = 12300.0 -
double d2 = -5.67E-2;→ 等价于-5.67 × 10⁻² = -0.0567 -
float f = 3.14e-1f;→ 必须加f或F后缀,否则编译报错(类型不匹配)
float 类型必须显式标注 f/F 后缀
因为科学计数法字面量默认是 double,赋值给 float 变量时不能自动窄化转换:
- ✅ 正确:
float x = 2.5e3f;、float y = 7.89E+5F; - ❌ 错误:
float z = 1.2e-4;→ 编译错误:可能的精度损失
指数部分可以带正负号,但不能是小数或变量
指数只能是十进制整数,不能含小数点、空格或计算表达式:
- ✅
double a = 9.99e0;、double b = 4.5E+6; - ❌
double c = 1.2e2.5;(指数非整数) - ❌
double d = 3.4e(2+3);(指数不能是表达式)
可与普通浮点字面量混用,支持十六进制浮点(较少用)
除常用十进制科学计数法外,Java 还支持十六进制浮点字面量(用 p 或 P 表示以 2 为底的指数):
-
double h = 0x1.8p3;→1.5 × 2³ = 12.0 -
float hf = 0x0.8p-2f;→ 需加f后缀 - 日常开发中十进制
e形式更通用、易读
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











