W JavaScript operator dzielenia / zwraca wynik jako wartość typu Number. Oznacza to, że nawet gdy dzielisz liczby wyglądające na całkowite (3 i 2), rezultat nie jest "dzieleniem całkowitym", tylko liczbą z częścią ułamkową: 3/2 = 1.5.
Jeżeli celem jest uzyskanie wartości 1 (bez części ułamkowej), trzeba wykonać dodatkową operację konwersji lub obcięcia ułamka. Wyrażenie parseInt(3/2) najpierw daje 1.5, a następnie parseInt zwraca część całkowitą, czyli w efekcie 1. Dlatego instrukcja var i = parseInt(3/2); spełnia warunek z treści zadania.
Dlaczego pozostałe propozycje nie pasują?
- var i = Number(3/2); – funkcja Number konwertuje do typu Number, ale tu wynik 3/2 już jest liczbą (1.5). Nie następuje odcięcie ułamka, więc i będzie równe 1.5.
- var i = 3/2; – bez żadnej konwersji i przechowuje dokładny wynik dzielenia, czyli 1.5.
- var i = parseFloat(3/2); – parseFloat zachowuje część ułamkową; przyjmując 1.5, zwróci 1.5, więc nie otrzymasz 1.
W praktyce, gdy chodzi o świadome obcięcie części ułamkowej liczby, często spotkasz też podejścia oparte o funkcje matematyczne (np. obcięcie w dół lub do zera). Na egzaminie kluczowe jest jednak rozpoznanie, że samo dzielenie nie da 1, tylko 1.5, a dopiero dodatkowa operacja (tu: parseInt) zmieni wynik na całkowity.