bcmod

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmodModulo zweier Zahlen mit beliebiger Genauigkeit

Beschreibung

bcmod(string $num1, string $num2, ?int $scale = null): string

Liefert den Rest der Division von num1 durch num2. Solange num2 ungleich 0 ist, hat das Ergnis dasselbe Vorzeichen wie num1.

Parameter-Liste

num1

Der Dividend in Stringform.

num2

Der Divisor in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt den Modulo als String zurück.

Fehler/Exceptions

In den folgenden Fällen wirft diese Funktion einen ValueError:

  • num1 oder num2 ist keine wohlgeformte numerische BCMath-Zeichenkette
  • scale liegt außerhalb des gültigen Bereichs

Wenn num2 0 ist, wirft diese Funktion eine DivisionByZeroError-Exception.

Changelog

Version Beschreibung
8.0.0 scale ist jetzt nullbar.
8.0.0 Die Division durch 0 wirft nun eine DivisionByZeroError-Exception, anstatt Null zurückzugeben.
7.2.0 num1 und num2 werden nicht länger zu einer Ganzzahl abgeschnitten, so dass nun das Verhalten von bcmod() eher fmod() statt dem % Operator entspricht.
7.2.0 Der scale Parameter wurde hinzugefügt.

Beispiele

Beispiel #1 bcmod()-Beispiel

<?php
bcscale
(0);
echo
bcmod( '5', '3'); // 2
echo bcmod( '5', '-3'); // 2
echo bcmod('-5', '3'); // -2
echo bcmod('-5', '-3'); // -2
?>

Beispiel #2 bcmod() mit Dezimalzahlen

<?php
bcscale
(1);
echo
bcmod('5.7', '1.3'); // 0.5 von PHP 7.2.0 an; 0 zuvor
?>

Siehe auch

  • bcdiv() - Division zweier Zahlen beliebiger Genauigkeit
  • bcdivmod() - Get the quotient and modulus of an arbitrary precision number