Hallo zusammen!
Ich habe eine kleine Routine geschrieben, die einfach zwei double-Zahlen subtrahieren soll. Leider bekomme ab 256 falsche Werte. Ich benutze Apache/1.3.12 und PHP Version 4.0.3pl1. Anbei ein Ausschnitt aus der Routine und dem Ergeniss.
Vielleicht kann mir jemand einen Tipp geben, ob ich was falsch mache oder ob da ein Bug vorliegt.
Schöne Grüße,
War_Lord_II
Skript:
for ($i=250; $i<=300; $i=$i+1) {
echo $i."; ";
(double)$j=(double)$i+0.34;
echo $j."; ";
$m=$j-$i;
echo $m."<br>\n";
}
Ergebnisse:
250; 250.34; 0.34
251; 251.34; 0.34
252; 252.34; 0.34
253; 253.34; 0.34
254; 254.34; 0.34
255; 255.34; 0.34
256; 256.34; 0.33999999999997
257; 257.34; 0.33999999999997
258; 258.34; 0.33999999999997
259; 259.34; 0.33999999999997
260; 260.34; 0.33999999999997
261; 261.34; 0.33999999999997
[...]
Ich habe eine kleine Routine geschrieben, die einfach zwei double-Zahlen subtrahieren soll. Leider bekomme ab 256 falsche Werte. Ich benutze Apache/1.3.12 und PHP Version 4.0.3pl1. Anbei ein Ausschnitt aus der Routine und dem Ergeniss.
Vielleicht kann mir jemand einen Tipp geben, ob ich was falsch mache oder ob da ein Bug vorliegt.
Schöne Grüße,
War_Lord_II
Skript:
for ($i=250; $i<=300; $i=$i+1) {
echo $i."; ";
(double)$j=(double)$i+0.34;
echo $j."; ";
$m=$j-$i;
echo $m."<br>\n";
}
Ergebnisse:
250; 250.34; 0.34
251; 251.34; 0.34
252; 252.34; 0.34
253; 253.34; 0.34
254; 254.34; 0.34
255; 255.34; 0.34
256; 256.34; 0.33999999999997
257; 257.34; 0.33999999999997
258; 258.34; 0.33999999999997
259; 259.34; 0.33999999999997
260; 260.34; 0.33999999999997
261; 261.34; 0.33999999999997
[...]
Kommentar