java - 什么是科学记数法以及为什么在 Java 中科学记数法要重复打印?

标签 java scientific-notation

我使用这个代码:

long elapsedTime = now - lastTime;
delta = ((double) elapsedTime) / 1000000000;
System.out.println(elapsedTime);
System.out.println(delta);

这是我的输出:

173290
1.7329E-4

这个输出给了我科学记数法,但我不知道它是什么。你能解释一下吗?为什么科学记数法要双印?

最佳答案

您看到的输出是 scientific notation .

在 Java 中,如果大小小于 10^-3,则将 double 打印为科学记数法或大于 10^7 .

Double#toString() javadocs

对于震级 m :

  • 如果m大于或等于10^-3但小于10^7 ,那么就是 表示为 m 的整数部分,无前导的十进制形式 零,后跟 '.' ('\u002E') ,后跟一位或多个小数 代表m的小数部分的数字.
  • 如果m小于10^-3或大于或等于10^7 ,那么就是 以所谓的“计算机科学记数法”表示。让n是 唯一的整数,使得 10^n ≤ m < 10^n+1;然后让a成为 m 的数学精确商和10^n这样1 ≤ a < 10 。这 然后幅度表示为 a 的整数部分,作为一个单独的 十进制数字,后跟 '.' ('\u002E') ,后跟小数位 表示 a 的小数部分,后跟字母 'E' ('\u0045') ,后跟 n 的表示作为十进制整数, 由方法Integer.toString(int)产生.

自从你输出 1.7329E-4大小为10^-4 ,它属于上面列出的第二类。

关于java - 什么是科学记数法以及为什么在 Java 中科学记数法要重复打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44026121/

相关文章:

java - 注入(inject) WebJarAssets Controller 期间出现 NoSuchMethodError

javascript - 当科学记数法超出 toPrecision 范围时怎么办

python - 十进制 ('5E+1' ) 可以在 Python 中简单地转换为十进制 ('50' ) 吗?

java - 如何使用 GSON 解析 JSON WHen 对象是 JSONObject 或 JSONArray

java - 按值传递 链表

java - 想打印最后一句话

java - 如何存储字节并将它们读回数组

python - 将科学计数法转换为不带尾随零的十进制

stat_poly_eq 中的 R 科学记数法

php - (PHP) 如何避免使用科学记数法并显示实际的大数?