我使用以下代码:
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
或大于10^7
,则将double打印为科学计数法。
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
,因此属于上面列出的第二类。