Mailinglisten-Archive |
Hallo Norbert, das sieht mir ganz nach dem üblichen Gleitkommafehler aus. Hier mal ein Beispiel dafür: <?php $a=doubleval('1.111111')+doubleval('2.222222'); $b=doubleval('3.333333'); echo '$a==$b: '; if ($a==$b) { echo 'true'; } else { echo 'false'; } echo "<br>\n"; echo '"$a"=="$b": '; if ("$a"=="$b") { echo 'true'; } else { echo 'false'; } echo "<br>\n"; ?> Das kommt daher das Gleitkommazahlen als Brüche verwaltet werden und die Darstellung (also z.B. durch Umwandlung in einen String) durch Rundung vom konkreten internen Wert abweicht. Generell kann ich jedem Informatiker empfehlen sich mit Numerik zu beschäftigen. Das Hilft oft merkwürdige Phänomene wie sowas zu vermeiden. Viele Grüße, Andreas Müller PS: Und dann doch ein ruhiges Wochenende ohne grübeln :-)
php::bar PHP Wiki - Listenarchive