我使用这个代码:
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
.
对于震级 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/