Javascript返回-0

Set*_*ish 5 javascript

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

截图:

在此输入图像描述

谁能解释这些结果?

Fer*_*gus 5

根据IEEE标准.

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


Tac*_*cat 1

如上所述,Javascript 使用 IEEE 754,并且,

\n\n
\n

浮点运算的 IEEE 754 标准(目前大多数支持浮点数的计算机和编程语言都在使用)需要 +0 和 \xe2\x88\x920。带符号零的实数算术\n 可以被视为扩展实数轴的变体,使得\n 1/\xe2\x88\x920 = \xe2\x88\x92\xe2\x88\x9e 和 1/+0 = + \xe2\x88\x9e;仅对 \xc2\xb10/\xc2\xb10 和\n \xc2\xb1\xe2\x88\x9e/\xc2\xb1\xe2\x88\x9e 未定义除法。

\n\n

负号零呼应了数学分析概念“从下方逼近 0”作为单边极限,可以表示为\nx \xe2\x86\x92 0\xe2\x88\x92, x \xe2\x86\x92 0\xe2\x88\x92,或 x\xe2\x86\x92\xe2\x86\x910。符号“\xe2\x88\x920”可以非正式地用来表示已四舍五入为零的小负数。负零的概念在统计力学和其他学科中也有一些理论应用。

\n\n

据称,IEEE 754 中包含有符号零使得在某些关键问题中更容易实现数值精度(http://people.freebsd.org/~das/kahan86branch.pdf),特别是\ n 当使用复杂的初等函数进行计算时。

\n
\n\n

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

\n