为什么+ e取消了-e不?

Ros*_*ala 4 java double numbers scientific-notation notation

System.out.println(2e+5);
Run Code Online (Sandbox Code Playgroud)

以上线的输出是,

200000.0
Run Code Online (Sandbox Code Playgroud)

虽然低于线路,

System.out.println(2e-5);
Run Code Online (Sandbox Code Playgroud)

输出是,

2.0e-5
Run Code Online (Sandbox Code Playgroud)

为什么没有2e-5通过-10^5给出输出来解决,

0.00002
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 8

因为Double类的设计者选择如何实现它:

[...]

  • 如果m大于或等于10 -3但小于10 7,那么它表示为m的整数部分,以十进制形式表示,没有前导零,后跟'.' ('\ u002E'),后跟一个或多个十进制数字,表示m的小数部分.
  • 如果m小于10 -3或大于或等于10 7,则它以所谓的"计算机化科学记数法"表示.[...]

当然,他们本可以做出另一种选择,但事实就是如此.

正如文档所说,如果你想要一个特定的格式,使用a NumberFormat格式化你的双.