Heim >Backend-Entwicklung >PHP-Problem >PHP-Gleitkommazahl-Float-Operation-Übertragungsproblem in int

PHP-Gleitkommazahl-Float-Operation-Übertragungsproblem in int

coldplay.xixi
coldplay.xixiOriginal
2020-07-13 10:50:093038Durchsuche

PHP-Gleitkommazahl-Float-Operation wird in Ganzzahl konvertiert: Bei Ganzzahlen oder Gleitkommazahlen, deren Ergebnisse nach Operationen Ganzzahlen sind, kann PHP sie als Ganzzahlen behandeln. intval(round (floatval($value) * 100))].

PHP-Gleitkommazahl-Float-Operation-Übertragungsproblem in int

PHP-Gleitkommazahl-Float-Operation zum Ganzzahltyp int:

Führen Sie diesen Code aus:

$f = 0.58;
var_dump(intval($f * 100.0));

Vielleicht denken Sie, dass er 58 ausgibt, aber tatsächlich gibt er 57 aus.
Der Grund dafür ist, dass als Gleitkommadaten ein Teil ihrer Genauigkeit verloren gegangen ist und sie nicht vollständig genau sein können. Vertrauen Sie also niemals darauf, dass das Ergebnis einer Gleitkommazahl bis zur letzten Ziffer genau ist, und vergleichen Sie niemals zwei Gleitkommazahlen auf Gleichheit.

Gleitkommazahlen in PHP sind schwach typisiert. Bei Ganzzahlen oder Gleitkommazahlen, deren Ergebnis nach der Operation eine Ganzzahl ist, kann PHP sie als Ganzzahlen behandeln, der Typ bleibt jedoch unverändert. Wenn es sich jedoch nach der Operation nicht um eine Ganzzahl handelt, behandelt PHP das Ergebnis als strikte Gleitkommazahl

In der tatsächlichen Entwicklung können wir die folgende Logik verwenden, um diese Situation zu lösen

intval(round(floatval($value) * 100));

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonPHP-Gleitkommazahl-Float-Operation-Übertragungsproblem in int. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn