什么是科学记数法?为什么在Java中用科学记数法双重打印?

什么是科学记数法?为什么在Java中用科学记数法双重打印?,java,scientific-notation,Java,Scientific Notation,我使用以下代码: long elapsedTime = now - lastTime; delta = ((double) elapsedTime) / 1000000000; System.out.println(elapsedTime); System.out.println(delta); 这是我的输出: 173290 1.7329E-4 这个输出给了我科学的符号,但我不知道它是什么。你能给我解释一下吗?为什么在科学符号中重复打印?你应该考虑使用 java。UTI.Orth.TimeU

我使用以下代码:

long elapsedTime = now - lastTime;
delta = ((double) elapsedTime) / 1000000000;
System.out.println(elapsedTime);
System.out.println(delta);
这是我的输出:

173290
1.7329E-4

这个输出给了我科学的符号,但我不知道它是什么。你能给我解释一下吗?为什么在科学符号中重复打印?

你应该考虑使用<代码> java。UTI.Orth.TimeUng//C>。它更容易阅读,对错误的敏感度也更低

TimeUnit.NANOSECONDS.toSeconds(timeInSeconds)

您应该考虑使用<代码> java .UTI.Orth.TimeUng/Cuth>。它更容易阅读,对错误的敏感度也更低

TimeUnit.NANOSECONDS.toSeconds(timeInSeconds)

您看到的输出是

在Java中,如果震级小于
10^-3
或大于
10^7
,则将double打印为科学符号

对于幅值
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中,如果震级小于
10^-3
或大于
10^7
,则将double打印为科学符号

对于幅值
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
,因此它属于第二类,如上所列。

此输出有什么问题?发生了什么奇怪的事情?看起来很正常。顺便说一句,你可以写
delta=elapsedTime/1e9
;你觉得什么奇怪<代码> 1.7329 E-4 <代码> 1.7329×10 ^ - 4 < /代码>,这是<代码> 0.00017329 < /Cord> BTW,为了便于阅读,请考虑<代码> 12000 000 0000 000 < /代码>这个输出有什么问题?发生了什么奇怪的事情?看起来很正常。顺便说一句,你可以写
delta=elapsedTime/1e9
;你觉得什么奇怪<代码> 1.7329 E-4 <代码> 1.7329×10 ^ - 4 < /代码>,即<代码> 0.00017329 < /代码> BTW,为了便于阅读,请考虑<代码> 12000 000 0000 000 < /代码>谢谢,现在我明白了。我一定要记住它!!:汉克斯,现在我明白了。我一定要记住它!!:D