Mailinglisten-Archive |
Aloha, man könnte auch wenig 'Casten' zwichendurch, was das ERgebniss verbessern dürfte ... z.b.: echo ((int) (0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)) - 1 . "\n"; ... keine Ahnung was bei rauskommt, nur so ne Idee ... also "verbessert" wird es so definitiv nicht, eher verschlechtert. Du erhöhst den Fehler von (geschätzt) +- 0,0000001 auf +-1. Wenn man richtige Rechenergebnisse von Zahlen mit nachkommastelle haben möchte, dann verwende man entweder Programmiersprachen, die das von Haus aus können (Z.B. ABAP - Datentyp P) oder programmiere die Rechenoperationen selbst, so daß richtig gerechnet wird. Behelfsweise kann man auch (bei wenigen Nachkommastellen) die Zahl mit 10 hoch (Anzahl Nachkommastellen) multiplizieren, rechnen, und hinterher wieder durch 10 hoch (Anzahl Nachkommastellen) teilen. Z.B. 9,1 + 1,45 + 1,1234 wird dann zu: (91000 + 14500 + 11234) / 10000 = 116734 / 10000 = 11,6734 Aufpassen muss man hier aber, daß die Zahlen alle noch als Integer abbildbar sind. Grüße, Mathias
php::bar PHP Wiki - Listenarchive