我想在我的Android应用程序中使用数学表达式,我只使用int数据类型。但有时表达式的输出太大而无法用int来保存。我应该使用什么样的数据类型将大输出转换为带有“E”的数字?
答案 0 :(得分:2)
一般来说,如果你想在内存中存储非常大的数字(对于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"