In der PHP -Entwicklung müssen wir häufig die schwimmenden Punktzahlen runden. Obwohl die Intval () -Funktion Variablen in Ganzzahlen umwandeln kann, unterstützt sie keine Aufwärtsrundung (d. H. "Decke" -Operation), aber es schneidet einfach den Bruchteil ab und rundet das Ergebnis nach unten. Um den Effekt der Aufwärtsrundung zu erzielen, ist es normalerweise erforderlich, sie in Verbindung mit anderen Funktionen wie Ceil () zu verwenden.
In diesem Artikel wird vorgestellt, wie CEIL () und Intval () Funktionen kombiniert werden, um die Funktion der Erstrundung zu erkennen und dann in Ganzzahlen umzuwandeln, und die Details zu erläutern, die bei der Verwendung geschätzt werden müssen.
Die Funktion intval () wird verwendet, um eine Variable in einen Ganzzahltyp umzuwandeln, und die Syntax ist wie folgt:
intval(mixed $var, int $base = 10): int
Es wird den Bruchteil direkt abschneiden:
<?php
var_dump(intval(4.7)); // Ausgabe int(4)
var_dump(intval(-3.9)); // Ausgabe int(-3)
?>
Wie aus dem obigen Beispiel ersichtlich ist, ist intval () den Dezimalteil nicht umrund oder umrund.
Die CEIL () -Funktion wird verwendet, um die schwimmende Punktzahl abzurunden und die kleinste Ganzzahl größer oder gleich der angegebenen Zahl zurückzugeben, und der Ergebnistyp ist eine schwimmende Punktzahl.
ceil(float $value): float
Beispiel:
<?php
var_dump(ceil(4.1)); // Ausgabe float(5)
var_dump(ceil(-3.7)); // Ausgabe float(-3)
?>
Beachten Sie, dass CEIL () eine schwimmende Punktzahl zurückgibt. Wenn ein ganzzahliger Typ erforderlich ist, muss er noch konvertiert werden.
Wenn Sie zuerst eine schwimmende Punktnummer runden und dann in einen Ganzzahltyp konvertieren möchten, können Sie es zuerst mit CEIL () umrunden und dann mit Intval () konvertieren:
<?php
$num = 4.3;
$intNum = intval(ceil($num));
echo $intNum; // Ausgabe 5
?>
Dies erreicht den Zweck, "aufzapfen und in Zahlen umzuwandeln".
<?php
function ceilToInt($num) {
return intval(ceil($num));
}
// prüfen
$values = [3.2, 5.9, -2.7, -4.0];
foreach ($values as $val) {
echo "Ursprünglicher Wert: $val, Ganzzahl nach dem Zusammenbruch: " . ceilToInt($val) . "\n";
}
?>
Auslaufergebnisse:
Ursprünglicher Wert: 3.2, Ganzzahl nach dem Zusammenbruch: 4
Ursprünglicher Wert: 5.9, Ganzzahl nach dem Zusammenbruch: 6
Ursprünglicher Wert: -2.7, Ganzzahl nach dem Zusammenbruch: -2
Ursprünglicher Wert: -4, Ganzzahl nach dem Zusammenbruch: -4
Szenario : Es ist sehr praktisch, wenn Sie den Preis, die Seitenzahl, die Menge usw. zusammenrunden müssen, und Sie benötigen ganzzahlige Typen.
Beachten :
CEIL () gibt eine schwimmende Punktzahl zurück und muss intval () oder gegossen werden, um die Ganzzahl zu erhalten.
Intval () behandelt negative Zahlen, indem es den fraktionalen Teil abschneidet und nicht abrundet. Es kann nicht nach oben abgerundet werden, wenn es alleine verwendet wird.
Im Zusammenhang kann die Reihenfolge nicht umgekehrt werden. Zum Beispiel ist Ceil (intval ($ num)) nicht gleichwertig wie bei Intval (CEIL ($ num)) .
Angenommen, Sie möchten einen URL -Parameter verarbeiten, der eine Zahl enthält, und den Parameter bis zu einer Ganzzahl umrunden: