Mailinglisten-Archive |
Hallo, On Fri, Aug 13, 1999 at 05:08:53PM +0200, Egon Schmid wrote: > > > hm. ist das ein bug oder beabsichtigt? > > Das ist kaufmännische Rundung und so beabsichtigt. ... das ist beabsichtigt, aber eben genau nicht die 'kaufmaennische' Rundung. Es ist eher die mathematisch / statistische Rundung, > Nein, das ist ein kaufmaennischer Rundungsfehler: und die soll eben Verfaelschung von gerundeten Datenmengen verhindern. > round(13.5) gibt 14 > round(12.5) gibt 12 eben diese Vorgehensweise verhindert die Verfaelschung. Stelle Dir eine Messreihe mit Werten vor, deren erste Dezimalstelle (wenn wir auf ganze Zahlen runden) ueberwiegend '.5' lautet. Die Werte wuerden mit kaufmaennischer Rundung alle _aufgerundet_. Alle statistischen Betrachtungen diese Wertemenge waeren daraufhin verfaelscht. Plastisches Beispiel: Eingangsgroessen: 12.5 13.5 11.5 10.5 14.5 15.5 kaufm. gerundet: 13 14 12 11 15 16 wissens. gerundet: 12 14 12 10 14 16 Als Mittelwerte ergeben sich: mit Eingangsgroessen: 13 kaufm. gerundet: 13.5 (gerundet sogar 14) wissen. gerundet: 13 (korrekt) > round(13.5 + 0.000001) gibt 14 > round(12.5 + 0.000001) gibt 13 ... das ist aber schon fast eine kleine Garantie dafuer, dass man sich irgendwann selbst in den Fuss schiesst, naemlich genau dann, wenn durch die Addition ein Ueberlauf stattfindet. Zumindest muss das aufaddierte delta immer hinreichend kleiner als die gewuenschte Rundungsgenauigkeit sein. Andreas -- : Anti-Spam Petition: http://www.politik-digital.de/spam/ : : PGP-Key: http://www.tse-online.de/~ab/public-key : : Key fingerprint: 12 13 EF BC 22 DD F4 B6 3C 25 C9 06 DC D3 45 9B :
php::bar PHP Wiki - Listenarchive