如何在java中用科学记数法表示数字?

我正在写一个处理行星质量和直径的程序; 这些数量用科学记数法表示。 我的问题不是,请注意,不是如何以正确的方式打印大数字(那是使用printf(),duh),我会如何……“输入”这些数字,我想你可以说。 例如,表示汞的质量:

3.30 x 10ˆ23 

在我的行星质量arrays中,一个元素看起来像:

 33.0 * Math.pow(10, 23) 

但是,我不认为这是正确的方法 – 它看起来会引发exception……所以我怎么能从程序员的角度表达这样的大数字呢? 谢谢!

JLS的3.10.2节讨论了Java中的浮点文字。 简而言之,提供小数部分就好像它是科学记数法,但是你会写e23而不是x 10^23

 3.30e23 

要使用负指数编写一个,您也可以轻松地为6.67 x 10^(-11)

 6.67e−11 

Java确实支持科学记数法:

 3.30e23 

您可以尝试初始化一个long变量并尝试将其转换为double / float。 这可能有用,但我不是100%