In PHP wird die FMOD () -Funktion verwendet, um den Rest zu berechnen, nachdem zwei schwimmende Punktzahlen geteilt wurden. Im Gegensatz zum % Modulbetreiber, FMOD () -Point -Schwimmpunktzahlen, und das Symbol des Restes entspricht der Dividende. Dadurch zeigt FMOD () bei der Berechnung negativer Reste einige spezielle Verhaltens- und Anwendungsszenarien. In diesem Artikel wird die praktische Anwendung der Berechnung negativer Reste in der Funktion fMOD () und deren Vorsichtsmaßnahmen erläutert.
fmod (float $ num1, float $ num2): float
FMOD () berechnet den Rest, nachdem $ $ num1 durch $ num2 geteilt wurde, und das Symbol des Rückgabewerts stimmt mit $ num1 überein.
<?php
echo fmod(5.7, 2.3); // Ausgabe 1.1
echo fmod(-5.7, 2.3); // Ausgabe -1.1
?>
Es ist ersichtlich, dass der Rest auch ein negatives Vorzeichen hat, wenn der Divisor negativ ist.
Zeitberechnung und periodische Verarbeitung
Bei der Verarbeitungszeit und periodischen Ereignissen müssen häufig Modulo -Operationen an Zeitstempeln oder Zähler durchgeführt werden. Wenn die Zeit oder die Anzahl negativ sein kann (z. B. Countdown- oder Zeitdifferenz), kann die Verwendung von FMOD () negative Reste korrekt verarbeiten und die Zeitlogik korrekt halten.
<?php
$time = -7.5; // Repräsentiert die Countdown -Sekunden
$period = 3.0; // Die Periode ist3Zweite
$remainder = fmod($time, $period); // Das Ergebnis ist -1.5
?>
Berechnung und Schleifenanimation koordinieren
In Grafiken oder Animationen können Positionsberechnungen schwimmende Punktmoduloperationen beinhalten, und negative Reste können verwendet werden, um umgekehrte Schleifen oder Wickelffekte zu berechnen.
Negative Überreste bei finanziellen Berechnungen
Einige Finanzberechnungen umfassen Zinsanpassungen oder zyklische Ausgaben, und der negative Rest kann die Marge nach dem negativen Fall genau widerspiegeln.
Das Restsymbol ist das gleiche wie das Dividendensymbol
Das Rückgabewertsymbol des FMOD () steht im Einklang mit der Dividenden $ num1 , die sich vom Verhalten des % -Operators in PHP unterscheidet.
<?php
echo fmod(-5, 3); // Ausgabe -2
echo (-5 % 3); // Ausgabe -2,Die Ergebnisse sind gleich, aber die Typen sind unterschiedlich,fmod Gibt eine schwimmende Punktzahl zurück
?>
Unterschiede zum Operation des Ganzzahlmoduls
FMOD () berechnet den restlichen Restpunkt, und das Ergebnis kann eine Dezimalzahl dauern, während % nur Ganzzahlen unterstützt. Floating Point -Fehler können Genauigkeitsprobleme verursachen.
Der Divisor kann nicht Null sein
Der bestandene Divisor $ Num2 kann nicht Null sein, andernfalls wird eine Warnung generiert und eine NAN zurückgegeben.
Verarbeitung negativer Divisor
Wenn der Divisor negativ ist, hängt das Restzeichen immer noch von der Dividende ab, nicht vom Dividende.
<?php
echo fmod(5, -3); // Ausgabe 2
echo fmod(-5, -3); // Ausgabe -2
?>
Das folgende Beispiel zeigt die Berechnung und praktische Anwendung des negativen Restes:
<?php
// Berechnen Sie den Rest der negativen Zeit
function cycleTime(float $time, float $period): float {
$mod = fmod($time, $period);
// Der einheitliche Rest ist positiv(0 ankommen $period zwischen)
if ($mod < 0) {
$mod += $period;
}
return $mod;
}
$times = [-7.5, -3.1, 0, 2.5, 7.8];
$period = 3.0;
foreach ($times as $t) {
echo "Zeit: $t,Zeitraum Rest: " . cycleTime($t, $period) . "\n";
}
?>
Ausgabe:
Zeit: -7.5,Zeitraum Rest: 1.5
Zeit: -3.1,Zeitraum Rest: 2.9
Zeit: 0,Zeitraum Rest: 0
Zeit: 2.5,Zeitraum Rest: 2.5
Zeit: 7.8,Zeitraum Rest: 1.8
Durch diese Methode können wir den negativen Rest in positive Zahlen umwandeln, was für die periodische Verarbeitung geeignet ist.
Wenn Sie mehr über die Verwendung von PHP -Funktionen erfahren möchten, können Sie sich auf die offizielle PHP -Dokumentation verweisen: