Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 Unit Test Generator
 TLD Liste
 Webkatalog‑Verzeichnis

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
 
 
 

PHP Math-Grundlagen: abs, pow, sqrt, fmod, intdiv

Sie befinden sich: Home > Php Tutorial > PHP Math-Grundlagen: abs, p...

PHP Math-Grundlagen: abs, pow, sqrt, fmod, intdiv
Eintrag am:
16.05.2026
Hits / Besucher:
18
Sprache:
  Deutsch
Tutorial Art:
eigenes
Eingetragen von:
 
Beschreibung

Mit den Grundoperatoren +, -, * und / kommt man in PHP weit, aber sobald Vorzeichen, Potenzen oder Wurzeln ins Spiel kommen, lohnt sich ein Blick auf die eingebauten Math-Funktionen. PHP abs liefert den Betrag, pow() rechnet Potenzen, sqrt() zieht Wurzeln, fmod() erledigt den Float-Modulo und intdiv() die ganzzahlige Division. Dieses Tutorial zeigt alle fünf Funktionen kompakt zusammen, mit Beispielen aus Distanz-Rechnung, Modulo und Karton-Logik.

Was leisten die PHP-Math-Funktionen?

Wer in PHP rechnet, kommt mit den Operatoren +, -, * und / weit. Sobald aber Vorzeichen, Potenzen, Wurzeln oder Modulo ins Spiel kommen, lohnt es sich, die eingebauten Math-Funktionen zu kennen. PHP abs liefert den Betrag, pow() rechnet Potenzen, sqrt() zieht Wurzeln, fmod() berechnet den Float-Modulo und intdiv() liefert eine ganzzahlige Division ohne Rest. Diese fünf Math-Funktionen decken den Alltag in PHP-Skripten ab. Dieses Tutorial bringt die fünf Funktionen kompakt zusammen und zeigt sie an Beispielen aus Distanz-Berechnung, Karton-Logik und einfacher Statistik.

Illustration zum Tutorial: PHP Math-Grundlagen: abs, pow, sqrt, fmod, intdiv

Bevor es an die einzelnen Funktionen geht, lohnt sich ein kurzer Blick auf den Einsatzbereich.

Diese Sammlung versteht sich als Überblick für den Alltag. Wer eine sehr ausführliche Behandlung von abs() als Einzelfunktion sucht, findet sie im bestehenden abs-Tutorial mit den absoluten Wert einer Zahl ermitteln. Hier geht es um das Zusammenspiel der wichtigsten Funktionen und um typische Anwendungsmuster, in denen sie gemeinsam auftauchen.

PHP abs() für den absoluten Betrag

PHP abs macht aus einer negativen Zahl eine positive und lässt eine positive unverändert. Der Rückgabetyp entspricht dem Eingabetyp: ein Integer rein, ein Integer raus, ein Float rein, ein Float raus.

<?php

echo abs(-7); /* 7 */
echo abs(-3.14); /* 3.14 */
echo abs(42); /* 42 */
echo abs(0); /* 0 */

Im Alltag kommt PHP abs vor allem in Differenz-Berechnungen vor. Wenn unklar ist, welcher von zwei Werten größer ist, schreibt man abs($a - $b) und bekommt zuverlässig den positiven Abstand. Auch bei Toleranz-Vergleichen (abs($soll - $ist) < 0.001) ist die Funktion praktisch.

pow() und der Operator ** für Potenzen

PHP abs ist nur eine von mehreren Math-Funktionen, die im Alltag zählen. pow() rechnet Basis hoch Exponent. Seit PHP 5.6 gibt es den Operator ** als gleichwertige Kurzschreibweise. Beide erzeugen dasselbe Ergebnis, der Operator ist nur kompakter.

<?php

echo pow(5, 2); /* 25 */
echo 5 ** 2; /* 25, kompakter */
echo pow(2, 10); /* 1024 */
echo pow(8, 1/3); /* ungefaehr 2 (Kubikwurzel) */
echo pow(10, -2); /* 0.01 */

Negative Exponenten liefern Brüche, gebrochene Exponenten liefern Wurzeln. Wer häufig Quadrate rechnet, wird ** als Standard wählen, weil es bei 5 ** 2 + 3 ** 2 deutlich besser lesbar ist als pow(5, 2) + pow(3, 2). Bei sehr großen Werten kann pow() allerdings den Float-Bereich sprengen und INF liefern. Wer mit beliebig großen Zahlen rechnet, ist mit den BCMath-Funktionen wie bcpow() oder den GMP-Funktionen besser bedient.

sqrt() und Pythagoras-Distanz

Wer PHP abs in Distanz-Berechnungen nutzt, kombiniert es oft mit Wurzeln. sqrt() zieht die Quadratwurzel und liefert immer einen Float. Klassisches Anwendungsbeispiel ist die Distanz zwischen zwei Punkten in einer Ebene, also der Satz des Pythagoras.

<?php

function distanz(float $x1, float $y1, float $x2, float $y2): float
{
return sqrt(pow($x2 - $x1, 2) + pow($y2 - $y1, 2));
}

echo distanz(0, 0, 3, 4);
/* 5 */

Die Funktion lässt sich leicht erweitern auf 3D (+ pow($z2 - $z1, 2)) oder auf eine Geo-Distanz (Haversine-Formel mit Trigonometrie). sqrt() von negativen Zahlen liefert NAN, weil reelle Wurzeln nur für nicht-negative Werte definiert sind. Wer das Ergebnis weiterverarbeitet, sollte mit is_nan() prüfen, ob ein gültiger Wert herauskam.

flowchart TD
    A[Eingabezahl] --> B{Welche Operation?}
    B -->|abs| C[Vorzeichen entfernen]
    B -->|pow| D[Potenzieren]
    B -->|sqrt| E[Wurzel ziehen]
    B -->|fmod| F[Float-Modulo]
    B -->|intdiv| G[Ganzzahlige Division]
    C --> H[Ergebnis]
    D --> H
    E --> H
    F --> H
    G --> H

fmod() vs der Operator % für Modulo

Neben dem Vorzeichen-Thema kommt oft die Frage nach Modulo dazu. PHP kennt zwei Wege, einen Rest zu berechnen. Der Operator % arbeitet mit Integern und liefert den klassischen Modulo. fmod() arbeitet mit Float-Werten und ist die richtige Wahl, sobald Komma-Zahlen ins Spiel kommen.

<?php

echo 10 % 3; /* 1 (Integer-Modulo) */
echo fmod(10.5, 3); /* 1.5 (Float-Modulo) */
echo fmod(7, 2.5); /* 2.0 */

Wer % auf Float-Werte anwendet, bekommt eine implizite Cast-Konvertierung auf Integer. Aus 10.5 % 3 wird intern 10 % 3 = 1, der Komma-Anteil geht verloren. Bei Ressourcen-Zählern oder Geld-Beträgen, die in Cents gerechnet werden, ist % völlig in Ordnung, weil dort ohnehin nur Integer im Spiel sind. Bei Messreihen oder Sensordaten in Float ist fmod() Pflicht.

intdiv() für ganzzahlige Division

PHP abs und intdiv() begegnen sich oft in derselben Berechnung. intdiv() liefert das Ergebnis einer Division als Integer und schneidet alle Nachkommastellen ab. Das ist genau das, was man braucht, wenn die Frage lautet: "Wie oft passt die kleinere Zahl in die größere?".

<?php

$bestellt = 47;
$proKarton = 12;

$kartons = intdiv($bestellt, $proKarton);
$rest = $bestellt % $proKarton;

echo "$kartons Kartons + $rest lose Stück";
/* 3 Kartons + 11 lose Stueck */

Bei negativen Zahlen schneidet intdiv() Richtung Null ab, nicht zur nächstniedrigeren Ganzzahl. Das ist ein wichtiger Unterschied zu mathematischem Floor.

<?php

echo intdiv(7, 2); /* 3 */
echo intdiv(-7, 2); /* -3 (Richtung Null), nicht -4 */
echo intdiv(7, -2); /* -3 */

/* Floor zum Vergleich */
echo (int) floor(-7 / 2); /* -4 */

Wer das mathematische Floor-Verhalten braucht, nutzt (int) floor($a / $b). Eine ausführliche Erklärung des Floor-Verhaltens findet sich im floor-Tutorial. Bei Division durch Null wirft intdiv() einen DivisionByZeroError, das ist seit PHP 8.0 das Standard-Verhalten.

Stolperfallen und Best Practices

Drei Punkte verdienen besondere Aufmerksamkeit. Wer PHP abs und seine Verwandten produktiv einsetzt, sollte sie kennen. Erstens: pow() liefert bei sehr großen Ergebnissen INF. Wer Werte oberhalb von rund 1.7e308 erwartet, sollte BCMath oder GMP nutzen. Mit is_infinite() lässt sich prüfen, ob der Float-Bereich gesprengt wurde.

Zweitens: sqrt(-1) ist NAN und nicht false. Wer das Ergebnis in einer if-Prüfung verwendet, sollte explizit mit is_nan() testen. NAN hat die unangenehme Eigenschaft, dass NAN === NAN zwar true ist, der mathematische Vergleich aber NAN == NAN false liefert. Konsequenter Strikt-Vergleich plus is_nan() ist die sichere Variante.

Drittens: Die Präzedenz von ** ist rechtsassoziativ. 2 ** 3 ** 2 wird als 2 ** (3 ** 2) = 2 ** 9 = 512 ausgewertet, nicht als (2 ** 3) ** 2 = 64. Wer es eindeutig haben will, setzt Klammern.

<?php

echo 2 ** 3 ** 2; /* 512 */
echo (2 ** 3) ** 2; /* 64 */

Im Code-Review ist die explizite Klammer immer die bessere Wahl, weil sie auch für Leser klar ist, die die Präzedenz nicht im Kopf haben.

Fazit zu PHP abs

Die fünf Funktionen abs(), pow(), sqrt(), fmod() und intdiv() decken den Löwenanteil der Mathematik in PHP-Skripten ab. PHP abs liefert Beträge, pow() und ** rechnen Potenzen, sqrt() zieht Wurzeln, fmod() ist der Float-Modulo und intdiv() liefert ganzzahlige Divisionen. Wer das Verhalten bei negativen Zahlen, NaN und INF kennt, baut robuste Berechnungen für Distanz, Statistik und Mengen-Logik. Bei sehr großen Zahlen oder kritischen Geld-Berechnungen sind BCMath oder GMP die bessere Wahl, für den Alltag reichen die eingebauten Funktionen vollkommen aus.

 


 

Kommentare (0)

Noch keine Kommentare. Sei der Erste!

Melde dich an, um einen Kommentar zu schreiben.
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.