Java中的科学记数法
Posted
技术标签:
【中文标题】Java中的科学记数法【英文标题】:Scientific notation in Java 【发布时间】:2018-12-09 18:00:32 【问题描述】: System.out.println(Math.pow(10 , -10));
我写了这一行,输出应该是 10.0E-10 吧?但相反,它显示 1.0E-10 。这背后的原因可能是什么?
【问题讨论】:
怎么样?你愿意解释一下吗? 1 * 10^-10 是 Java 给你的。 @FaizanAhmad 请考虑接受您认为最好的答案。 【参考方案1】:xey
表示 x*10^y。
Math.pow(10 , -10)
表示 10 的 -10 次方,或 10^-10。这等于 1*10^-10,用xey
表示法表示,就是1e-10
。
【讨论】:
【参考方案2】: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"));
输出:1.00E-9
或
System.out.println(Double.valueOf("10.0E-10"));
输出:1.0E-9
哪个最好取决于哪个考虑因素对您更重要。分别:忠实地将存储与以 10 为基数的表示或性能匹配。
【讨论】:
以上是关于Java中的科学记数法的主要内容,如果未能解决你的问题,请参考以下文章