我使用此代码:
long elapsedTime = now - lastTime;
delta = ((double) elapsedTime) / 1000000000;
System.out.println(elapsedTime);
System.out.println(delta);
这是我的输出:
173290
1.7329E-4
这个输出给了我科学记数法,但我不知道它是什么。你能解释一下吗?为什么用科学记法双重打印?
答案 0 :(得分:2)
您看到的输出是scientific notation。
在Java中,如果幅度小于10^-3
或大于10^7
,则双倍打印为科学记数法。
对于幅度m
:
m
大于或等于10^-3
但小于10^7
,那么它是
表示为m
的整数部分,以十进制形式表示,没有前导
零,后跟'.' ('\u002E')
,后跟一个或多个小数
表示m
的小数部分的数字。m
小于10^-3
或大于或等于10^7
,那么它是
以所谓的“计算机化科学记数法”代表。让n
成为。{1}}
唯一的整数,10^n ≤ m < 10^n+1;
然后让a
成为。{1}}
m
和10^n
的数学上精确的商,以便1 ≤ a < 10
。该
然后将幅度表示为a
的整数部分,作为单个
十进制数字,后跟'.' ('\u002E')
,后跟十进制数字
表示a
的小数部分,后跟字母'E' ('\u0045')
,后跟n
的十进制整数表示,
由方法Integer.toString(int)
生成。由于1.7329E-4
的输出幅度为10^-4
,因此它属于第二类,如上所列。
答案 1 :(得分:1)
您应该考虑使用File.ReadAllLines(FILE)
。它更容易阅读,对错误更敏感。
java.util.concurrent.TimeUnit