KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 28.
W języku JavaScript zdefiniowana zmienna i, która ma przechowywać wynik dzielenia wynoszący 1, to
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna jest odpowiedź "var i=parseInt(3/2);", ponieważ 3/2 daje 1.5, a parseInt obcina część ułamkową i zwraca 1.
Pozostałe propozycje ("Number(3/2)", "3/2", "parseFloat(3/2)") pozostawiają wynik jako 1.5, więc nie spełniają warunku wyniku 1.

Pełne wyjaśnienie:

W JavaScript operator / wykonuje dzielenie w typie Number, czyli w arytmetyce zmiennoprzecinkowej. Dlatego wyrażenie 3/2 ma wartość 1.5, a nie 1. Aby otrzymać wartość całkowitą 1, trzeba w jakiś sposób usunąć część ułamkową.

Wyrażenie "var i=parseInt(3/2);" spełnia to wymaganie: najpierw oblicza się 3/2 (czyli 1.5), a następnie parseInt zwraca liczbę całkowitą uzyskaną przez obcięcie części ułamkowej. W efekcie i przyjmuje wartość 1.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "var i=Number(3/2);" – funkcja Number nie zaokrągla i nie obcina; ona jedynie konwertuje wartość na typ Number. Ponieważ 3/2 już jest liczbą typu Number, wynik pozostaje 1.5.
  • "var i=3/2;" – bez żadnej konwersji i dostaje dokładnie wynik dzielenia zmiennoprzecinkowego, czyli 1.5.
  • "var i=parseFloat(3/2);" – parseFloat służy do uzyskania liczby (również ułamkowej) z zapisu tekstowego; nie obcina do liczby całkowitej. Dla 1.5 zwróci 1.5.

W praktyce programistycznej często spotyka się też podejście bardziej jednoznaczne semantycznie: gdy celem jest obcięcie części ułamkowej, stosuje się funkcje z obszaru matematyki (np. obcięcie w dół lub "ucięcie" do zera). Na egzaminie kluczowe jest jednak rozpoznanie, że Number i parseFloat nie zmienią 1.5 na 1, natomiast parseInt da wynik całkowity.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
W JavaScript wyrażenie 3/2 zwraca 1.5, ponieważ dzielenie działa na liczbach typu Number (zmiennoprzecinkowych), a nie jako dzielenie całkowite.
parseInt w tym kontekście obcina część ułamkową (traktując wynik jak zapis liczby), więc z 1.5 robi 1. Nie wykonuje zaokrąglania matematycznego do najbliższej liczby.
Nie. Number(x) służy do konwersji typu na Number, a nie do obcinania lub zaokrąglania. Ponieważ 3/2 już jest typu Number, wynik pozostaje 1.5.
parseFloat zamienia tekst (np. "1.5") na liczbę ułamkową typu Number. Używa się go głównie przy parsowaniu danych tekstowych. Nie służy do uzyskiwania części całkowitej z wyniku dzielenia.
Najpierw obliczasz wynik dzielenia, a potem usuwasz część ułamkową. Na egzaminach spotyka się m.in. parseInt, ale w praktyce często używa się funkcji matematycznych obcinających część ułamkową.
JavaScript ma jeden podstawowy typ liczbowy (Number), oparty na arytmetyce zmiennoprzecinkowej. Dlatego operator / zwraca wynik ułamkowy, gdy to możliwe, np. 3/2 = 1.5.
Częsty błąd to zakładanie, że parseInt "zaokrągla" liczbę, a parseFloat "robi liczbę całkowitą". W rzeczywistości parseFloat zachowuje ułamek, a parseInt usuwa go (bez klasycznego zaokrąglania).
Nie zawsze. parseInt jest przede wszystkim do parsowania liczb całkowitych z tekstu. Do operacji matematycznych na liczbach lepiej wybierać funkcje stricte matematyczne, aby uniknąć niejednoznaczności.
Konwersja zmienia reprezentację/typ (np. tekst na liczbę) i nie "poprawia" wartości (1.5 zostaje 1.5). Zaokrąglanie/obcinanie zmienia wartość (np. 1.5 na 1 lub 2) według określonej reguły.
Przećwicz krótkie przykłady: działania na liczbach (np. 3/2), konwersje (Number) oraz parsowanie (parseInt, parseFloat). Zwracaj uwagę, czy wynik ma być ułamkowy czy całkowity i jaką metodą jest uzyskiwany.
info

Statystycznie 63% uczniów zna prawidłową odpowiedź. średnie

Źródła:

  • MDN Web Docs: parseInt() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt (dostęp: 2026-03-02)
  • MDN Web Docs: Number() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number (dostęp: 2026-03-02)
  • MDN Web Docs: parseFloat() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja MDN: parseInt(), parseFloat(), Number()
  • Ćwiczenia z konwersji typów i działań na liczbach w JavaScript
  • Materiały o błędach zaokrągleń i arytmetyce zmiennoprzecinkowej w JS

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego