phpbar.de logo

Mailinglisten-Archive

[php] Rundenproblem

[php] Rundenproblem

Mario Batz info at batz.info
Di Mär 30 12:10:50 CEST 2010


Hallo,

irgend wie stehe ich auf dem Schlauch. Folgendes ist gegeben:

Entwicklungssystem:
 - Debian
 - PHP 5.2.0
Produktivsystem:
 - Windows 2003 SBS SP2
 - PHP 5.2.1

Es wird ein Array mit Werten aus der DB erzeugt:
$summen["zw_summe"] = 9.5;
$summen["ust_prozentwert"][7] = 0.665;

Ggf. ist noch eine 2. Ebene vorhanden:
$summen["ust_prozentwert"][19] = 0;

Wenn ich nun die Unterelemente von "ust_prozentwert" summieren möchte,
verwendet man ja "array_sum()". Somit ergeben sich aus allen Werten komplett
eine Summe von "10.165".

Wenn ich dieses in eine Zeile packe und auf 2 Nachkommastellen runde ...
round($summen["zw_summe"]+array_sum($summen["ust_prozentwert"],2);
... dann hab ich unter Debian die Zahl 10.17
... und unter Windooooof 10.16 ?!?!??!?!?!?!

Rund ich aber das Ergebnis von array_sum() noch vor der Addition mit
$summen["zw_summe"] ...
round($summen["zw_summe"]+round(array_sum($summen["ust_prozentwert"]),2),2);
... dann bringen beide Systeme 10.17

Hab ich irgendetwas übersehen? Oder liefert array_sum() unter Windows die
Zahl so, dass diese plötzlich mathematisch gerundet (bei geraden Zahlen vor
der 5 wird abgerundet, bei ungeraden vor der 5 wird aufgerundet) wird, so
wie es Access schon immer macht.

Mach ich einen Denkfehler? Bug? Feature?

Mit freundlichen Grüßen
Mario Batz 





php::bar PHP Wiki   -   Listenarchive