java - 如何使用科学记数法存储数字?

标签 java

标题说明了一切:有没有一种方法可以使用科学计数法来存储非常大的数字? 类似于 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/

相关文章:

java - 获取与 JTable 单元格相关的单个 MousePoint

java - 如何确定一个类是否不可变

java - 查找流交集是否为非空

java - 不同类之间共享对象

java - 两个完全相同的阿拉伯字母 "as they appear"在 NetBeans 中不相等

java - 找不到 Jersey 资源

java - 使用 Jackson 1.9 解析 json 时出现问题

java - 如何使用 ScrollTable 实现自定义 ColumnSorter(GWT 孵化器)

java - @RequestMapping 不映射 URL

java - 无法调用注释处理器 - 在 Weblogic 12.2.1.2.0 中部署时