2014-11-22 17 views
5

Podczas eksperymentowania z JavaScript. I testował wokół niektórych dziwnych małych fragmentów kodu, oto kilka z moich ustaleń (aby pomóc zrozumieć, w jaki natknąłem -0)Dlaczego -0 istnieje?

Robiąc +[] w konsoli, to zwraca 0. Nie jestem pewien dlaczego, ale tak. Tak, to implikuje pozytywny z tablicy jest 0 ..

Po robią tak, dostałem ciekawy i próbowałem następujące:

console.log(-[]); 

a ten zwraca -0 ...

Co jest punkt -0? 0 i -0 oba nie mają wartości, więc negatyw jest naprawdę niepotrzebny ... A może? Być może JavaScript ma cel -0?

Dodawanie do tego. Nie mogę znaleźć żadnego innego sposobu rozmnażania -0 inny niż przy użyciu -0 się, lub korzystając -[] ...


niektórych innych ustaleń dziwne, furthing moje pytanie -0

(-0) + (-0) = 0 
(-0) - (-0) = -0 
(-0) * (-0) = 0 
(-0)/(-0) = NaN // of course 
+0

'-0 < 0' -> " false "; '-0 == 0' -> ' prawda'; '-0 === 0' -> ' true' –

+0

To jest coś starego, nie martwiłbym się tym zbytnio. – dandavis

+0

Również znalazłem ten: http://stackoverflow.com/questions/7223717/differentiating-0-and-0 – Krease

Odpowiedz

3

JavaScript wykorzystuje IEEE 754 standard do reprezentowania liczby. Od Wikipedia:

Podpisano zera wynosi zero z towarzyszącym znakiem. W zwykłej arytmetyce, -0 = +0 = 0. Jednak w obliczeniach niektóre reprezentacje liczbowe pozwalają na istnienie dwóch zer, często oznaczonych przez -0 (zero ujemne) i +0 (zero dodatnie). Występuje to w niektórych reprezentacjach liczby podpisanych liczb całkowitych oraz w większości reprezentacji liczb zmiennoprzecinkowych. Liczba 0 jest zwykle kodowana jako +0, ale może być reprezentowana przez +0 lub -0.

Standard IEEE 754 dla arytmetyki zmiennoprzecinkowej (obecnie używany przez większość komputerów i języków programowania obsługujących liczby zmiennoprzecinkowe) wymaga zarówno +0, jak i -0. Zera mogą być traktowane jako wariant rozszerzonej linii liczb rzeczywistych, tak, że 1/-0 = -∞ i 1/+ 0 = + ∞, dzielenie przez zero jest tylko niezdefiniowane dla ± 0/± 0 i ± ∞/± ∞ .

Od tego Post

+0

Dlaczego jest obecny? Jakie zastosowanie służy -0? – Aravind

+1

jak moja mama odpowiedziała na pytania z nieistotnymi odpowiedziami: "tu jest po to, aby zmusić małych chłopców do pytania, dlaczego to jest" – dandavis

2

to, aby pomóc ustalić, co się dzieje, kiedy dzielimy przez nią.

Jeśli podzielisz przez +0, otrzymasz +Infinity. Jeśli podzielisz przez -0, otrzymasz -Infinity. (Oczywiście dla niezerowych liczników).

+0

Jestem ciekawy, dlaczego jest obecny? Co to jest przypadek? – Aravind

+0

@Aravind Czy pytasz, co jest przypadkiem użycia dla rozróżnienia pomiędzy nieskończonością pozytywną i negatywną? –

+0

Pytam o przypadek użycia dla -0. Gdzie to się pojawi? Jak mogę go używać w praktyce? – Aravind

Powiązane problemy