phpbar.de logo

Mailinglisten-Archive

[php] mal was zum raten ...

[php] mal was zum raten ...

Andreas Müller php at universalware.de
Fre Apr 29 17:04:55 CEST 2005


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