Signatur
Beschreibung
variant_round() ist eine Funktion aus der COM/VARIANT-Erweiterung von PHP und arbeitet analog zur bekannten round()-Funktion, jedoch speziell für Windows-COM-VARIANT-Datentypen. Sie rundet den übergebenen Variant-Wert auf die gewünschte Anzahl von Dezimalstellen.
Die Funktion ist primär dann sinnvoll, wenn man mit COM-Objekten (z. B. Microsoft Office-Automatisierung via COM unter Windows) arbeitet und Rundungsoperationen direkt auf Variant-Ebene durchführen möchte, anstatt den Wert vorher in einen PHP-Basistyp zu konvertieren. Dadurch bleibt die Typsicherheit auf COM-Ebene erhalten.
Das Ergebnis ist wieder ein VARIANT-Objekt, das nahtlos in weitere COM-Operationen eingespeist werden kann. Für normale PHP-Floats sollte stattdessen die Standardfunktion round() verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $left Pflicht | mixed | Der zu rundende Wert, typischerweise ein VARIANT-Objekt oder ein numerischer Wert, der implizit in ein Variant konvertiert werden kann. |
|
| $decimals Pflicht | int | Die Anzahl der Nachkommastellen, auf die gerundet werden soll. Ein Wert von 0 rundet auf eine ganze Zahl, positive Werte geben die Anzahl der Dezimalstellen an. |
Rückgabewert
VARIANT-Objekt zurück, das den gerundeten Wert enthält. Im Fehlerfall (z. B. bei ungültigen Eingaben) wird eine com_exception ausgelöst.Beispiele
Einfaches Runden eines Variant-Wertes
<?php
// Voraussetzung: PHP unter Windows mit aktivierter COM-Erweiterung
$value = new VARIANT(3.14159, VT_R8);
$rounded = variant_round($value, 2);
echo $rounded; // Gibt 3.14 aus
Runden auf ganze Zahlen im COM-Kontext
<?php
// Voraussetzung: PHP unter Windows mit aktivierter COM-Erweiterung
$value = new VARIANT(7.89, VT_R8);
$rounded = variant_round($value, 0);
echo $rounded; // Gibt 8 aus
// Vergleich mit PHP-Standardfunktion (ohne COM)
$phpFloat = 7.89;
echo round($phpFloat, 0); // Ebenfalls 8
// Wichtig · Fallstricke
Plattformabhängigkeit: variant_round() ist ausschließlich unter Windows verfügbar, da sie Teil der COM-Erweiterung ist. Auf Linux- oder macOS-Systemen steht die Funktion nicht zur Verfügung. Für plattformübergreifende Projekte sollte round() verwendet werden.
Fehlerbehandlung: Bei ungültigen oder nicht konvertierbaren Eingabewerten kann eine com_exception geworfen werden. Es empfiehlt sich, Aufrufe in einem try/catch-Block zu kapseln.
Typkonvertierung: Wenn ein gewöhnlicher PHP-Skalar (int, float) übergeben wird, versucht PHP, ihn intern in ein Variant umzuwandeln. Das Ergebnis ist dennoch ein VARIANT-Objekt und sollte bei Bedarf explizit zurückkonvertiert werden.