KWALIFIKACJA INF3 - CZERWIEC 2016

PYTANIE NR 25.
W formularzu dane z pola input o typie number zostały zapisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w następujący sposób

var x = parseFloat(a);

Zmienna x będzie typu
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
parseFloat() konwertuje przekazaną wartość na liczbę w formacie zmiennoprzecinkowym (w JS jest to typ Number). Dlatego po wykonaniu var x = parseFloat(a); zmienna x ma typ liczbowy (zmiennoprzecinkowy), a nie napis. NaN pojawi się tylko przy braku poprawnej konwersji.

Pełne wyjaśnienie:

Funkcja parseFloat() w JavaScript służy do zamiany przekazanej wartości (najczęściej napisu) na liczbę. Zwraca wynik jako wartość typu Number, czyli liczbową reprezentację zmiennoprzecinkową (w praktyce zgodną z IEEE‑754 w typowych silnikach JS). Dlatego po instrukcji var x = parseFloat(a); zmienna x będzie liczbą "zmiennoprzecinkową" (potocznie: float), a nie tekstem.

Dlaczego nie "napisowego"? Ponieważ parseFloat wykonuje konwersję do liczby. Nawet jeśli a pochodzi z formularza i pierwotnie bywa łańcuchem znaków, celem parseFloat jest zwrócenie wartości numerycznej.

Dlaczego nie "NaN"? Wartość NaN (Not-a-Number) jest zwracana wtedy, gdy konwersja się nie uda, np. dla danych, które nie zaczynają się od poprawnej reprezentacji liczby. Sam fakt użycia parseFloat nie oznacza automatycznie NaN — zależy to od zawartości a.

Dlaczego nie "liczbowego, całkowitego"? W JavaScript nie ma odrębnego wbudowanego typu "int" w sensie klasycznych języków (pomijając BigInt jako osobny typ). Typ Number obejmuje zarówno wartości całkowite, jak i ułamkowe, ale wewnętrznie jest to reprezentacja zmiennoprzecinkowa. Stąd określenie "całkowity" jest tu mylące jako nazwa typu.

Wskazówka egzaminacyjna: gdy widzisz parseInt/parseFloat/Number(), pytaj siebie: "co zwraca funkcja?" — zwykle Number, a NaN jest tylko możliwym wynikiem błędnej konwersji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
parseFloat() zwraca wartość typu Number utworzoną na podstawie przekazanego tekstu lub innej wartości. Jeśli konwersja się nie powiedzie, wynikiem jest NaN. Funkcja odczytuje liczbę z początku ciągu znaków.
W JavaScript wbudowanym typem liczbowym jest Number, a nie osobne typy int/float jak w wielu innych językach. Określenie "zmiennoprzecinkowy" opisuje sposób reprezentacji, ale formalna nazwa typu w JS to właśnie Number.
W zależności od sposobu pobrania danych możesz otrzymać tekst (np. przez value) lub wartość liczbową (np. przez valueAsNumber). Dlatego w praktyce często wykonuje się konwersję, np. parseFloat() lub Number(), i dodatkowo sprawdza NaN.
NaN pojawi się, gdy nie da się odczytać liczby z początku przekazanego ciągu, np. gdy wartość zaczyna się od liter lub jest pusta w sposób uniemożliwiający interpretację. Na egzaminie pamiętaj: NaN to możliwy wynik, ale nie "typ" danych.
Najprościej użyć typeof x. Dla wyniku parseFloat() (gdy konwersja da liczbę lub NaN) typeof zwróci zwykle "number". Dodatkowo warto użyć Number.isNaN(x), aby rozpoznać NaN.
parseFloat() pozwala odczytać część ułamkową, a parseInt() parsuje liczbę całkowitą (może obcinać część po separatorze). Obie funkcje zwracają typ Number, ale różnią się regułami parsowania i tym, czy zachowują ułamek.
Nie, parseFloat() nie zaokrągla celowo wartości — ma ją sparsować. Ograniczenia mogą wynikać z reprezentacji zmiennoprzecinkowej (Number). Jeśli potrzebujesz zaokrąglania, użyj np. Math.round, toFixed lub innych funkcji matematycznych.
Typowy schemat to: pobranie wartości, konwersja do liczby (np. Number() lub parseFloat()), a potem walidacja (np. zakres, wymagane pole, sprawdzenie Number.isNaN). To minimalizuje błędy w obliczeniach i logice aplikacji.
W JS "liczba całkowita" nie jest oddzielnym typem (jak int). Wartości bez ułamka nadal są typu Number. To częsty błąd wynikający z przenoszenia wiedzy z innych języków. Egzamin zwykle oczekuje rozpoznania "Number"/"zmiennoprzecinkowy".
Najczęstsze to: utożsamianie NaN z typem zamiast z wartością, mylenie "number" z gwarancją poprawnego wejścia z <input type="number">, oraz zakładanie, że JS ma osobny typ całkowity. Pomaga myślenie: "funkcja zwraca Number".
info

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

Eksperci podkreślają: "parseFloat() konwertuje przekazaną wartość na liczbę w formacie zmiennoprzecinkowym (w JS jest to typ Number)."

Źródła:

  • MDN Web Docs: parseFloat() — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat (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: &lt;input type="number"&gt; — https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja MDN: parseFloat() oraz typ Number
  • Dokumentacja MDN: &lt;input type=&quot;number&quot;&gt; i zachowanie wartości w formularzu
  • Materiały do INF.3 z podstaw JavaScript (typy, rzutowanie, NaN)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego