Java中科学计数法数字本质是double或float字面量,用e/E表示10的幂,如1.23e4;默认为double类型,float需加f后缀;字符串解析用parseDouble/parseFloat;输出时极值自动转科学计数法。

Java 中科学计数法表示的数字本质就是普通的 double 或 float 字面量,直接写、直接用,和普通数字一样参与计算。
怎么写科学计数法数字
用 e 或 E 表示“乘以 10 的幂”,后面跟整数指数(可带正负号):
-
1.23e4等价于1.23 × 10⁴ = 12300.0 -
5E-3等价于5 × 10⁻³ = 0.005 -
-7.89e+2等价于-7.89 × 10² = -789.0 -
6.022e23是阿伏伽德罗常数的常用写法(double类型)
类型默认是 double,想用 float 要加 f 或 F
不加后缀时,科学计数法字面量默认是 double;要赋值给 float 变量,必须显式标记:
-
double d = 1.5e-6;✅ 合法 -
float f = 1.5e-6f;✅ 加f才行 -
float f = 1.5e-6;❌ 编译错误:可能损失精度
字符串转科学计数法数字用 parseXxx 方法
如果数字来自用户输入或配置文件(如字符串 "3.14e-2"),用标准解析方法即可:
立即学习“Java免费学习笔记(深入)”;
-
Double.parseDouble("2.718e3")→2718.0 -
Float.parseFloat("1.0e-5")→1.0E-5f - 注意:字符串格式必须合法,空格、多余符号会抛
NumberFormatException
输出时自动转成科学计数法?看数值大小和格式控制
Java 默认打印 double 时,对非常大或非常小的数会自动用科学计数法(例如 System.out.println(1e-10); 输出 1.0E-10)。如需控制格式,用 String.format 或 DecimalFormat:
-
String.format("%.2e", 123456.789)→"1.23e+05" -
String.format("%.3f", 1.23e-4)→"0.000"(小数点后三位,可能显示为 0)


















