什么是科学记数法,为什么在 Java 中双印科学记数法?
What is a scientific notation and why is double printed in scientific notation in Java?
我使用这个代码:
long elapsedTime = now - lastTime;
delta = ((double) elapsedTime) / 1000000000;
System.out.println(elapsedTime);
System.out.println(delta);
这是我的输出:
173290
1.7329E-4
这个输出给了我科学记数法,但我不知道它是什么。你能解释一下吗?为什么要用科学记数法双印?
您应该考虑使用 java.util.concurrent.TimeUnit
。它更易于阅读且不易出错。
TimeUnit.NANOSECONDS.toSeconds(timeInSeconds)
您看到的输出是 scientific notation。
在Java中,如果量级小于10^-3
或大于10^7
.
,则双精度打印为科学记数法
星等 m
:
- 如果
m
大于等于10^-3
但小于10^7
,则为
表示为 m
的整数部分,无前导的十进制形式
零,后跟 '.' ('\u002E')
,后跟一位或多位小数
代表 m
. 小数部分的数字
- 如果
m
小于10^-3
或大于等于10^7
,则为
表示为所谓的 "computerized scientific notation." 设 n
为
唯一的整数使得 10^n ≤ m < 10^n+1;
然后让 a
成为
m
和 10^n
的数学精确商,因此 1 ≤ a < 10
。这
然后将 magnitude 表示为 a
的整数部分,作为单个
十进制数字,后跟 '.' ('\u002E')
,后跟十进制数字
表示 a
的小数部分,后跟字母 'E' ('\u0045')
,然后是 n
的十进制整数表示,
由方法 Integer.toString(int)
. 生成
由于 1.7329E-4
的输出量级为 10^-4
,因此它属于第二类,如上所列。
我使用这个代码:
long elapsedTime = now - lastTime;
delta = ((double) elapsedTime) / 1000000000;
System.out.println(elapsedTime);
System.out.println(delta);
这是我的输出:
173290
1.7329E-4
这个输出给了我科学记数法,但我不知道它是什么。你能解释一下吗?为什么要用科学记数法双印?
您应该考虑使用 java.util.concurrent.TimeUnit
。它更易于阅读且不易出错。
TimeUnit.NANOSECONDS.toSeconds(timeInSeconds)
您看到的输出是 scientific notation。
在Java中,如果量级小于10^-3
或大于10^7
.
星等 m
:
- 如果
m
大于等于10^-3
但小于10^7
,则为 表示为m
的整数部分,无前导的十进制形式 零,后跟'.' ('\u002E')
,后跟一位或多位小数 代表m
. 小数部分的数字
- 如果
m
小于10^-3
或大于等于10^7
,则为 表示为所谓的 "computerized scientific notation." 设n
为 唯一的整数使得10^n ≤ m < 10^n+1;
然后让a
成为m
和10^n
的数学精确商,因此1 ≤ a < 10
。这 然后将 magnitude 表示为a
的整数部分,作为单个 十进制数字,后跟'.' ('\u002E')
,后跟十进制数字 表示a
的小数部分,后跟字母'E' ('\u0045')
,然后是n
的十进制整数表示, 由方法Integer.toString(int)
. 生成
由于 1.7329E-4
的输出量级为 10^-4
,因此它属于第二类,如上所列。