phpbar.de logo

Mailinglisten-Archive

[php] Re: aufrunden, abrunden

[php] Re: aufrunden, abrunden

Andreas Braukmann braukmann_(at)_tse-online.de
Sun, 15 Aug 1999 00:44:31 +0200


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