Java 中的科学记数法

Scientific notation in Java

    System.out.println(Math.pow(10 , -10));

我写了这一行,输出应该是 10.0E-10 ,对吧?但它显示 1.0E-10 。这背后的原因可能是什么?

符号xey表示x*10^y。

Math.pow(10 , -10) 表示 10 的 -10 次方,即 10^-10。这等于1*10^-10,用xey表示法,就是1e-10.

10.0E-10

表示

10.0 x 10-10

但是

Math.pow(10 , -10)

表示

10-10

如果你想要一种方便的方式来使用 10.0E-10 试试

System.out.println(new BigDecimal("10.0E-10"));

Output: 1.00E-9

System.out.println(Double.valueOf("10.0E-10"));

Output: 1.0E-9

哪个最好取决于哪个考虑因素对您来说更重要。分别:以 10 为基数或性能忠实地将存储与表示相匹配。