June 2005
Intermediate to advanced
794 pages
18h 27m
German
Sie möchten prüfen, ob zwei Fließkommazahlen gleich sind.
Benutzen Sie einen kleinen Delta-Wert und überprüfen Sie, ob die Zahlen innerhalb dieses Deltas gleich sind:
$delta = 0.00001;
$a = 1.00000001;
$b = 1.00000000;
if (abs($a – $b) < $delta) { /* $a und $b sind gleich */ }Fließkommazahlen werden in binärer Form gespeichert, wobei es für Mantissen und Exponenten nur jeweils eine endliche Anzahl von Bits gibt. Sie bekommen einen Overflow-Fehler, wenn diese Bits überschritten werden. Als Folge davon glaubt PHP manchmal nicht (wie andere Programmiersprachen auch), dass zwei gleiche Zahlen wirklich gleich sind, da sie sich vielleicht ganz am Ende unterscheiden.
Um dieses Problem zu vermeiden, ...
Read now
Unlock full access