2012-07-06 19 views
44

Powiel możliwe:
Comparing NaN values for equality in JavascriptJak mogę przetestować dla NaN?

Czy ktoś może mi powiedzieć, dlaczego to nie działa?

if(inbperr == NaN){ 
document.getElementById('inbclo').value = "N/A"; 
} 
else{ 
document.getElementById('inbclo').value = "%" + inbperr; 
} 

Zamiast zwracać wartość procentową lub „N/A” jak chcę go do jego powrotu „% NaN”.

+0

Wystarczy alternatywą składnia, która jest sucha-er ... 'document.getElementById ('inbclo') Wartość = isNaN (inbperr) 'N/A'.? "%" + Inbperr;' – Basic

+0

Możliwe duplikat http://stackoverflow.com/questions/2652319/how-do-you-check-that-a-number-is-nan-in-javascript – Foreever

+2

'funkcja isReallyNaN (a) { \t \t powrotnej isNaN (a) && "number" == typeof a \t}; ' – SpYk3HH

Odpowiedz

82

NaN są niezwykłe: nie są równe cokolwiek, nawet same. Musisz użyć wartości isNaN(inbperr), aby określić, czy wartość to NaN, czy nie.

+1

Aby uzyskać więcej informacji, przeczytaj https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN?redirectlocale= en-US i redirectslug = JavaScript% 2FReference% 2FGlobal_Objects% 2FisNaN –

+15

'typeof NaN' ======>' "number" 'WTF? Nie, to jest * nie * liczba, udało nam się to ustalić. – charltoons

+0

+1 Dokładnie to, czego potrzebowałem. –

1

NaN nie jest liczbą. Jeden z nielicznych typów toksycznych JavaScript. Może zredukować całe wyrażenie do NaN.

http://www.crockford.com/javascript/encyclopedia/

+0

Dlaczego "_toxic" "?:]" NaN "zwykle pojawia się, gdy próbujesz podzielić przez zero.Zgodnie z matematyką (przynajmniej to, czego nauczyłem się wiele lat temu), wynik nie jest liczbą (jest nieskończonością lub coś podobnego, dziwnego/toksycznego) Jak chcesz to przedstawić w JavaScript? – trejder

+2

jest "toksyczny", ponieważ całe obliczenie jest zredukowane do NaN Ex: a * b * c/d-e + f. Jeśli którakolwiek z zmiennych jest NaN cała calcultion staje się NaN, bez żadnego wyjątku, bez ostrzeżenia, skrypt nadal działa i przenosi tę NaN, dopóki nie trafi w ścianę, więc możesz znaleźć NaN w dziwnych miejscach – CoR

+0

Z tego punktu widzenia - zgadzam się:] – trejder

Powiązane problemy