Start · Sprachen · PHP · Referenz · gmp_abs

gmp_abs

Funktion

Gibt den absoluten Betrag einer GMP-Zahl zurück.

seit PHP 4.0.4 Kategorie: math

Signatur

gmp_abs(GMP|int|string $num): GMP

Beschreibung

gmp_abs() berechnet den absoluten Betrag einer beliebig großen Ganzzahl, die als GMP-Objekt, natives PHP-Integer oder numerischer String übergeben werden kann. Das Ergebnis ist stets nicht-negativ.

Die Funktion ist besonders nützlich, wenn mit sehr großen Zahlen gearbeitet wird, die außerhalb des nativen PHP-Integer-Bereichs liegen und bei denen ein Vorzeichenwechsel oder eine Betragsberechnung erforderlich ist. Anders als abs() arbeitet gmp_abs() auf dem GMP-Zahlentyp und bleibt dabei präzise, ohne Gleitkomma-Ungenauigkeiten zu erzeugen.

Das zurückgegebene GMP-Objekt kann direkt in anderen GMP-Funktionen wie gmp_add(), gmp_mul() oder gmp_strval() weiterverwendet werden.

Parameter

Name Typ Default Beschreibung
$num Pflicht GMP|int|string Die Eingangszahl, deren absoluter Betrag berechnet werden soll. Kann ein GMP-Objekt, ein PHP-Integer oder ein numerischer String sein.

Rückgabewert

Typ
GMP
Beschreibung
Gibt ein GMP-Objekt zurück, das den absoluten Betrag von num repräsentiert. Der Wert ist immer >= 0.

Beispiele

Absoluter Betrag einer negativen GMP-Zahl

<?php
$negativ = gmp_init('-42');
$positiv = gmp_abs($negativ);
echo gmp_strval($positiv); // 42
42

Absoluter Betrag einer sehr großen negativen Zahl

<?php
// Zahl weit außerhalb des PHP-Integer-Bereichs
$gross = gmp_init('-99999999999999999999999999999');
$betrag = gmp_abs($gross);
echo gmp_strval($betrag);
99999999999999999999999999999

Direktübergabe als Integer-Literal

<?php
// gmp_abs akzeptiert auch einen nativen PHP-Integer direkt
$betrag = gmp_abs(-7);
echo gmp_strval($betrag);
7

// Wichtig · Fallstricke

Die GMP-Erweiterung muss aktiviert sein (--with-gmp). Ist sie nicht vorhanden, wirft PHP einen fatalen Fehler. Unter vielen Linux-Distributionen ist das Paket php-gmp separat zu installieren.

Bei positiven Werten gibt gmp_abs() eine Kopie des GMP-Objekts zurück, d. h. das Original wird nicht verändert.