Aktueller Standort: Startseite> Neueste Artikel> So konvertieren Sie schwimmende Werte mit setType () in Ganzzahlen ()

So konvertieren Sie schwimmende Werte mit setType () in Ganzzahlen ()

gitbox 2025-05-29

In PHP ist die Typumwandlung eine übliche Operation, insbesondere wenn es erforderlich ist, die Variable strikt einzugeben. setType () ist eine integrierte Funktion, die von PHP bereitgestellt wird, um Variablen in bestimmte Typen zu konvertieren. SetType () sieht einfach aus, wenn es um Gleitkomma-Nummern zu ganzzahligen Konvertierungen geht, aber es gibt einige Details, auf die dahinter geachtet wird.

Grundnutzung

Die grundlegende Syntax von setType () lautet wie folgt:

 bool settype(mixed &$var, string $type)

Diese Funktion erfordert zwei Parameter: die Referenz einer Variablen $ var und der zu konvertierte Zieltyp $ (z. B. "Ganzzahl", "String" usw.). Die Funktion gibt einen booleschen Wert zurück, der angibt, ob der Typ erfolgreich eingestellt ist.

Konvertieren Sie beispielsweise eine schwimmende Punktzahl in eine Ganzzahl:

 $number = 42.99;
settype($number, "integer");
echo $number; // Ausgabe:42

Das tatsächliche Verhalten von schwimmenden Punktzahlen gegenüber Ganzzahlen

Bei der Durchführung der Konvertierung von Float zu Ganzzahl reduziert PHP den Bruchteil, anstatt ihn abzurunden. Das ist sehr wichtig.

Zum Beispiel:

 $float = 9.99;
settype($float, "integer");
echo $float; // Ausgabe:9

Egal, was der Teil nach dem Dezimalpunkt ist, solange Sie SetType () verwenden, wird er direkt verworfen.

setType () vs (int) gegossen

Obwohl setType () für die Typumwandlung verwendet werden kann, sind in der tatsächlichen Entwicklung ähnliche Funktionen (int) oder intval () :

 $float = 7.89;
$int1 = (int) $float;
$int2 = intval($float);

echo $int1; // Ausgabe:7
echo $int2; // Ausgabe:7

Diese Methoden entsprechen dem Konvertierungsergebnis von setType () im Verhalten, außer dass sie sich in Bezug auf Semantik und Schreiben unterscheiden.

  • SetType () soll die ursprüngliche Variable vor Ort ändern

  • (int) Gibt einen neuen Wert zurück

  • Intval () kann mehr Typen (z. B. Zeichenfolgen) verarbeiten und zusätzliche Parameter bereitstellen

Dinge zu beachten

  1. Verlust der Datengenauigkeit : Beim Umwandeln von Gleitkomma-Zahlen in Ganzzahlen wird der Dezimalteil direkt verkürzt, was dazu führen kann, dass die erwarteten Ergebnisse nicht mit den tatsächlichen Ergebnissen übereinstimmen.

  2. Überlaufproblem : Die Ganzzahlen von PHP haben Reichweite (-9223372036854775808 bis 9223372036854775807 auf 64-Bit-Systemen).

  3. Nicht geeignet für Finanzberechnungen : Wenn Sie sich mit Geschäft mit Beträgen befassen oder einen hochpräzisen Dezimaloperationen erfordern, ist die Verwendung von SETTYPE () oder einer ganzzahligen Konvertierung normalerweise nicht sicher, und hochpräzise Bibliotheken wie BCMATH oder GMP sollten berücksichtigt werden.

Beispiel: Verarbeitung der Preiseingabe durch den Benutzer

Angenommen, der Benutzer gibt ein Preisfeld ein, und Sie möchten nur seinen ganzzahligen Teil für eine Art Abrechnungslogik nehmen:

 $price = $_POST['price']; // Benutzereingabe kann sein "199.95"
if (is_numeric($price)) {
    $price = (float) $price;
    settype($price, "integer");
    // Jetzt $price Es ist eine Ganzzahl 199,Kann zur weiteren Verarbeitung verwendet werden
}

Verwenden Sie aus Sicherheitsgründen is_numeric () , um zu überprüfen, ob die Eingabe eine rechtliche Nummer ist.

Hinweis zur Typumwandlung in URL -Parametern

Wenn Sie beispielsweise bei der Verarbeitung von URL -Parametern konvertieren möchten, beispielsweise:

 https://gitbox.net/process.php?value=12.75

Sie könnten das tun:

 $value = $_GET['value'];
if (is_numeric($value)) {
    $value = (float) $value;
    settype($value, "integer");
    echo "Der Ganzzahlwert ist:" . $value;
}

Stellen Sie sicher, dass Sie immer die Typ -Überprüfung durchführen, um Probleme zu vermeiden, die durch böswillige oder falsche Eingaben verursacht werden.

Zusammenfassen

Die Verwendung von SetType () zum Umwandeln von Gleitkomma-Zahlen in Ganzzahlen ist eine direkte und effiziente Art und Weise in PHP, aber es gibt auch einige "Fallen", die verstanden werden müssen, wie z. B. Kürzung als Rundung, Typemodifikation usw. Das Verständnis des Verhaltens und anwendbaren Szenarien können Ihnen helfen, stabilere und vorhersehbare PHP-Programme zu schreiben. Für komplexere oder höhere Präzisionsanforderungen ist die Berücksichtigung fortschrittlicherer Datenverarbeitungsmethoden eine bessere Wahl.