Java - 如何像计算器那样将大数转换为位数较少且 "E" 的数字?

Java - How to convert a large number into a number with less digits and "E" as done by calculators?

我想在我的 Android 应用程序中使用数学表达式,我只使用 int 数据类型。但有时表达式的输出变得太大而无法被 int 保存。我应该使用哪种数据类型将大输出转换为其中包含 "E" 的数字?

一般来说,如果你想在内存中存储非常大的数字(对于 int 来说太大了)并且可能对它们进行一些数学运算,你必须使用类似 java.math.BigInteger:

import java.math.*;

BigInteger number = new BigInteger("12345678954646565757"); // very large number
BigInteger anotherNumber = new BigInteger("5");
number = number.add(anotherNumber);

然后,如果你想用科学记数法格式化这个值,使用NumberFormatter:

NumberFormat formatter = new DecimalFormat("0.######E0");
String str = formatter.format(number);
System.out.println(str); // prints "1.234568E19"