Java - 如何将大数字转换为数字较少的数字和计算器完成的“E”数字?

时间:2015-09-21 14:43:25

标签: java integer biginteger

我想在我的Android应用程序中使用数学表达式,我只使用int数据类型。但有时表达式的输出太大而无法用int来保存。我应该使用什么样的数据类型将大输出转换为带有“E”的数字?

1 个答案:

答案 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"