标题说明了一切:有没有一种方法可以使用科学计数法来存储非常大的数字?
类似于 BigInteger i = 1.9891*10^30
?
郑重声明,我正在尝试存储太阳的质量。事实上,最后,我希望能够存储几个恒星和行星的质量,更不用说它们的半径、表面积、体积等。而且我认为存储完整的值会占用大量内存.
或者我是否需要创建自己的类来处理科学计算并存储这些值?
编辑
我的意思是,如果我存储数字1.9891e30,将使用多少磁盘空间?就像我存储了 1989100000000000000000000000000 一样多,或者更少?
最佳答案
尝试使用 E
而不是 *10^30,这样:
BigInteger i = 1.9891E30?
我不确定您是否不必使用 double
要以科学计数法显示它,请使用 printf()
方法和 %g
标志以科学计数法显示,如下所示:
System.out.printf("%g", i);
关于java - 如何使用科学记数法存储数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721160/