Napisz program, który sprawdza, czy podana wartość z formularza da się przekonwertować na liczbę, i określa, czy jest to liczba całkowita, rzeczywista czy wartość szesnastkowa. Program powinien obsługiwać przecinek jako separator dziesiętny oraz ujemne liczby szesnastkowe (np. -0xff). Wynik ma być wyświetlony w czytelny sposób, pokazując zarówno wprowadzoną wartość, jak i rezultat jej analizy.
+
Wskazówki dla ucznia:
+
+
Użyj funkcji is_numeric(), aby sprawdzić, czy wartość jest numeryczna.
+
Zamień przecinek na kropkę za pomocą str_replace(), ponieważ PHP rozpoznaje liczby zmiennoprzecinkowe z kropką (np. 0.34).
+
Do konwersji liczb szesnastkowych (np. 0xff lub -0xff) możesz użyć intval() z podstawą 16, ale zwróć uwagę na znak minusa.
+
Sprawdź typ liczby po konwersji za pomocą is_int() i is_float().
+
Zabezpiecz dane wejściowe używając htmlspecialchars(), aby uniknąć problemów z XSS.
+
+
+
+
+
+
+ ";
+
+ if (is_numeric($input)) {
+ if (is_int(0 + $input)) {
+ $result .= "Jest to liczba całkowita. ";
+ } elseif (is_float(0 + $input)) {
+ $result .= "Jest to liczba rzeczywista. ";
+ }
+
+ } elseif (str_starts_with($input, "0x") || str_starts_with($input, "-0x")) {
+ $hexValue = hexdec($input);
+ $result .= "Jest to liczba szesnastkowa. Wartość dziesiętna: $hexValue ";
+ } else {
+ $result .= "Nie można przekonwertować na liczbę. ";
+ }
+
+ echo $result;
+ }
+ ?>
+