使用指数的javascript数字文字

时间:2014-08-19 00:34:54

标签: javascript numbers exponent

console.log(2E-12); // returns 2E-12
console.log(2E12); // returns 2000000000000

为什么第一行返回2E-12而不是第二行。这是使用指数的非法方式吗?

2 个答案:

答案 0 :(得分:2)

渲染器很聪明。如果您尝试console.log(2E-6),您会发现它符合您的预期。 console.log(2E-7)不...至少在Chrome和当前版本的IE中。有人认为指数符号对于长分数值更易读。

此外,请注意,您获得的2e-12是一个数字,而不是字符串。

> console.log(2e-12*2e5)
4e-7

答案 1 :(得分:2)

来自toString applied to the Number type的ECMAScript规范:

  

7。如果0 < n≤21,返回由s的十进制表示的最高n位数字组成的字符串,后跟小数点'。',后跟s的十进制表示的其余k-n位。

     

8。如果-6&lt; n≤0,返回由字符'0'组成的字符串,后跟小数点'。',后跟-n出现的字符'0',后跟s的十进制表示的k位数。

     

9。否则,如果k = 1,则返回由s的单个数字组成的字符串,后跟小写字母“e”,后跟加号'+'或减号' - ',根据n-1是正数还是负数,后跟整数abs(n-1)的十进制表示(没有前导零)。

n实际上是数字的指数。因此,如果指数介于-721之间,则应正常显示该数字,否则应使用指数表示法。