KWALIFIKACJA INF3 - STYCZEŃ 2023

PYTANIE NR 7.
Które wywołanie funkcji PHP round() zwróci wartość 1?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wywołanie round(0.60) zwraca 1, ponieważ liczba 0,60 po zaokrągleniu do najbliższej liczby całkowitej daje 1. Pozostałe wartości: 0,29 zaokrągla się do 0, a liczby ujemne -1,40 i -4,60 po zaokrągleniu nie dają wyniku 1.

Pełne wyjaśnienie:

Funkcja round() służy do zaokrąglania liczb zmiennoprzecinkowych. Gdy wywołujemy ją z jednym argumentem (bez podania precyzji), otrzymujemy wynik zaokrąglony do najbliższej liczby całkowitej.

Wartość 0,60 leży bliżej liczby całkowitej 1 niż 0, dlatego round(0.60) zwraca 1. To jest typowy przypadek zaokrąglania "w górę", gdy część ułamkowa jest większa od 0,5.

  • round(0.29) nie daje 1, bo 0,29 jest znacznie bliżej 0 niż 1, więc wynikiem jest 0.
  • round(-1.40) nie daje 1, bo to liczba ujemna o wartości bezwzględnej bliższej -1 niż -2; wynik zaokrąglenia będzie liczbą ujemną, a nie dodatnią 1.
  • round(-4.60) również nie da 1: liczba jest ujemna i po zaokrągleniu pozostanie w okolicach -5, nie zmieniając znaku na dodatni.

Warto pamiętać o dwóch typowych pułapkach egzaminacyjnych. Po pierwsze, round() to nie to samo co obcięcie części ułamkowej (np. przez rzutowanie na typ całkowity), więc wynik może różnić się od "ucięcia po przecinku". Po drugie, liczby zmiennoprzecinkowe bywają zapisywane w pamięci przybliżeniami, co może mieć znaczenie w przypadkach granicznych (np. dokładnie 0,5), choć w tym pytaniu wartości są na tyle "bezpieczne", że wynik jest jednoznaczny.

Na egzaminie najlepiej szybko ocenić, do której liczby całkowitej dana wartość jest bliżej (dla dodatnich: 0 czy 1; dla ujemnych: -1 czy -2 itd.), a dopiero potem wybrać wywołanie funkcji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Funkcja round() zaokrągla liczbę zmiennoprzecinkową do wskazanej liczby miejsc po przecinku, a gdy nie podasz precyzji, do liczby całkowitej. Zwraca wartość numeryczną, którą dalej możesz wyświetlić lub wykorzystać w obliczeniach w skrypcie.
Bez drugiego argumentu (precyzji) round() zwraca liczbę całkowitą najbliższą wartości wejściowej. Dla liczb dodatnich typowo: 0,29 przejdzie na 0, a 0,60 na 1, bo 0,60 jest bliżej 1 niż 0.
Bo 0,60 po zaokrągleniu do najbliższej liczby całkowitej daje 1. Różnica do 1 wynosi 0,40, a do 0 wynosi 0,60, więc najbliższą liczbą całkowitą jest 1. W typowych zadaniach egzaminacyjnych to jednoznaczny przypadek.
Nie. Rzutowanie na typ całkowity zwykle ucina część ułamkową, a nie zaokrągla. round() wybiera najbliższą wartość całkowitą (lub zadaną precyzję), więc dla wielu liczb wynik będzie inny niż po prostym obcięciu po przecinku.
Dla liczb ujemnych wynik pozostaje ujemny i jest zaokrąglany do najbliższej liczby całkowitej po stronie wartości ujemnych. Typowy błąd to zakładanie, że ujemne zawsze "idą do zera" lub zawsze "w dół" — trzeba rozumieć, co znaczy "najbliższa liczba całkowita".
Drugi argument (precyzja) określa liczbę miejsc po przecinku, do których ma nastąpić zaokrąglenie. Przykładowo precyzja 2 oznacza zaokrąglenie do setnych. W pytaniach, gdzie go nie ma, przyjmujesz zaokrąglenie do liczby całkowitej.
Bo liczby zmiennoprzecinkowe są często zapisywane w pamięci jako przybliżenia, więc wartości "teoretycznie proste" mogą mieć minimalny błąd reprezentacji. W przypadkach granicznych (np. blisko 0,5) może to wpływać na wynik. Dlatego warto znać zasady pracy typu float.
round() zmienia wartość liczbową (przydatne w obliczeniach). Formatowanie (np. do stałej liczby miejsc) dotyczy często sposobu prezentacji tekstowej. Na egzaminie zwracaj uwagę, czy pytanie dotyczy wyniku liczbowego funkcji, czy tylko wyglądu na ekranie.
Najczęściej: pomylenie zaokrąglania z obcięciem, nieuwzględnienie znaku przy liczbach ujemnych oraz automatyczne użycie intuicji bez sprawdzenia, czy podano precyzję. Pomaga szybkie oszacowanie: do której liczby całkowitej wartość jest bliżej.
Porównaj odległość liczby od dwóch sąsiednich liczb całkowitych. Dla 0,60 sprawdzasz: do 1 brakuje 0,40, do 0 brakuje 0,60, więc wybierasz 1. Dla ujemnych analogicznie porównujesz np. -1,40 między -1 a -2.
info

To pytanie poprawnie rozwiązuje 70% zdających egzamin. średnio łatwe

Specjaliści zwracają uwagę: "Wywołanie round(0.60) zwraca 1, ponieważ liczba 0,60 po zaokrągleniu do najbliższej liczby całkowitej daje 1."

Źródła:

  • PHP Manual: round — Rounds a float, https://www.php.net/manual/en/function.round.php (dostęp: 2026-03-01)
  • PHP Manual: Floating point numbers (typ float), https://www.php.net/manual/en/language.types.float.php (dostęp: 2026-03-01)
  • PHP Manual: Type Juggling / Type Casting (konwersje typów), https://www.php.net/manual/en/language.types.type-juggling.php (dostęp: 2026-03-01)

Materiały:

  • Oficjalna dokumentacja PHP: opis funkcji round() i trybów zaokrąglania
  • Materiały do INF.3 z podstaw PHP: typy danych i operacje na liczbach
  • Ćwiczenia praktyczne: testowanie round() na dodatnich i ujemnych liczbach oraz na wartościach granicznych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego