Javascript返回-0

时间:2016-02-15 07:04:17

标签: javascript

我在控制台上尝试了一个简单的算法,我试图将0与-1相乘。有趣的是,我得到了-0作为答案,而不是0。

截图:

enter image description here

有人可以解释这些结果吗?

4 个答案:

答案 0 :(得分:5)

Under the IEEE standard

  

带符号的零为零,带有相关符号。在普通的算术中,   -0 = +0 = 0.但是,在计算中,某些数字表示允许   因为存在两个零,通常用-0表示(负零)   和+0(正零)。这发生在一些签名号码中   整数的表示,以及大多数浮点数   表示。数字0通常编码为+0,但也可以   用+0或-0表示。

答案 1 :(得分:2)

JavaScript正在使用IEEE-754,它有正负零。

答案 2 :(得分:1)

Javascript使用上面提到的IEEE 754,

  

用于浮点运算的IEEE 754标准(目前由...使用)   大多数支持浮点的计算机和编程语言   数字)需要+0和-0。带有符号零的实数算术   可以被认为是扩展实数行的变体   1 / -0 =-∞且1 / + 0 = +∞;除法仅为±0 /±0和未定义   ±∞/±∞。

     

负面符号零回应了数学分析的概念   从下面接近0作为单侧限制,可以表示为   x→0-,x→0-或x→↑0。符号“-0”可以非正式地使用   表示已舍入为零的小负数。该   负零的概念也有一些理论应用   统计力学和其他学科。

     

声称在IEEE 754中包含有符号零点就可以了   在一些关键问题中更容易实现数值精度   (http://people.freebsd.org/~das/kahan86branch.pdf),特别是   在计算复杂的基本函数时。

http://www.johndcook.com/blog/2010/06/15/why-computers-have-signed-zero/

答案 3 :(得分:0)

JavaScript使用IEEE 754标准浮点数系统。该系统同时具有positive and negative zeros,但在比较时它们是相同的。它还有正负无穷大和“非数字”值。