2016-02-15 134 views
5

我正在嘗試一個簡單的算術在控制檯上,我試圖乘以0和-1。有趣的是,我得到了1-0的答案,而不是0Javascript返回-0

截圖:

enter image description here

誰能解釋這些結果?

+0

代碼在哪裏? – Rayon

+1

我相信他在開發者控制檯上試過它 –

+0

沒有代碼..在控制檯中嘗試時發生。 –

回答

1

JavaScript使用IEEE 754如上述,並且還提到,

的IEEE 754標準的浮點算術運算(目前所用的由 大多數計算機和編程語言支持浮點 數字)既需要+0和-0。有符號零的實數算術 可以被認爲是擴展實數行的變體,使得 1/-0 =-∞和1/+ 0 = +∞;除法僅在±0 /±0和 ±∞/±∞範圍內未定義。

負符號零相呼應的 接近從低於0作爲單面極限的數學分析概念,其可以通過 X→0-來表示,X→O - ,或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/

2

JavaScript使用IEEE-754,它有正負的零。

+0

有趣的..我們在哪裏可以找到用於負零的地方? –

+0

我相信沒有重要的用途 - 這只是使用的編碼的副作用。 – yihangho

+1

如[此處](http://stackoverflow.com/a/27074403/704944)所述,一個可能的原因是如此劃分零可以區分-∞和+∞ – jeremy

5

Under the IEEE standard

帶符號的零有符號。在普通算術中, -0 = + 0 = 0.但是,在計算中,一些數字表示允許存在兩個零,通常用-0(負零) 和+0(正零)表示。這發生在一些有號碼 表示整數,並在大多數浮點數 表示。數字0通常編碼爲+0,但可以是由+0或-0表示的 。

+0

哦..但它是這樣嗎?或者我們可以失去-0? –

+0

其中x === y的比較標準的一部分,請看這裏:http://ecma262-5.com/ELS5_HTML.htm#Section_11.9.6 – Fergus

0

JavaScript使用IEEE 754標準的浮點數字系統。這個系統有positive and negative zeros,雖然它們比較時是相等的。它也有正面和負面的無限性和「不是數字」的價值。