2016-09-15 52 views
0

我知道JavaScript有一個正常的零0(稱爲正零+0)和負零-0,但是我從來沒有遇到過必須使用-0的情況。JavaScript中的負零產生重大影響的任何示例/方案?

堆棧溢出中有一些關於積極和消極的零是相似/不同的現有帖子,但沒有一個解釋它的真實生活用例/例子。

+0

爲什麼這個哨兵相關? –

+0

在我看來,它是更多的數學表示。 +和 - 是基本上有助於增加價值的方向性意義的標誌。例如,如果你正在計算'2/0 = Infinity','2/-0 = - infinity'。所以,現在無限在你的研究或算法或一些計算中有一個上下文。 「無限」表示值非常低。而「無窮大」代表的價值非常高。 – user5249203

+0

http://stackoverflow.com/questions/7223359/are-0-and-0-the-same – epascarello

回答

1

假設我們正在研究函數y = 1/x,並且我們想知道它在x很小時的表現。讓我們x=1, x=0.1, x=0.01並計算FUNC:

x = 1; 
 
while(x) { 
 
    x /= 10; 
 
    document.write(x + ' ' + 1/x + '<br>'); 
 
}

正如你所看到的,它向正無窮接近。 1/x等於Infinity,因爲在某點x變得非常小以至於與01/0 = Infinity難以區分。請注意,這是「正數」無窮大,即「非常大的數字」。

現在,讓我們開始-1代替x=1

x = -1; 
 
while(x) { 
 
    x /= 10; 
 
    document.write(x + ' ' + 1/x + '<br>'); 
 
}

現在的答案是-Infinity,也就是功能向負無限接近, 「極少數」 。當然,這也是正確的,但計算機是如何得到它的?我們剛剛瞭解到1/0 = (positive) Infinity?祕訣在於最後一個片段中的零實際上是負數,因此上一次迭代中的x-0而不僅僅是01/-0給出-Infinity。沒有簽名零,最後一個片段會給出不正確的結果。

希望能解釋一下。

相關問題