Seite 1 von 1

NAN Problem bei PHP-Berechnung

Verfasst: 22.01.2007 13:02
von schmidii
Hallo,
ich führe mit folgendem Script eine Berechnung durch:



$ergebniss2= log (- $rating/($k0*$i-$rating))/(log(1+$i));


echo $gerundetergebniss2;



Für meine Tests verwende ich folgende Daten:
$k0= 10000
$i= 10

Wenn ich bei $rating den Wert variiere ist $ergebniss teilweise NAN. Dies kommt meist vor wenn ich den Wert für $rating kleiner als 83,34 wähle.

Kann mir vielleicht jemand sagen wie ich das unterdrücken kann, so das die Berechnung ordentlich durchgeführt wird, egal welcher Wert $rating hat?


schonmal Danke für Eure Hilfe.

Gruss
Alex

Verfasst: 22.01.2007 13:42
von Stefane
NAN bedeutet Not a Number.
Ich denke mal, das kommt dadurch zustande, dass irgendwann der Wert
von (- $rating/($k0*$i-$rating)) kleiner als Null ist, also negativ. Und dann ist es klar, dass ein Fehler heraus kommt, denn der Logarithmus einer negativen Zahl ist nicht definiert.

Verfasst: 22.01.2007 14:44
von schmidii
Ja sowas dfacht eich mir auch.

Ich habe es jetzt erstmal mit is_nan überprüft und bei True eine entsprechende Fehlermeldung an den User ausgegebne ($rating) wird vom User eingetippt.


Ich hoffte das hier jemand einen Weg weiss, wie man das umgehen kann und für jede Zahl die Berechnung durchführen kann.

Trotzdem Danke.

Verfasst: 22.01.2007 17:07
von gn#36
Dazu müsste man erst einmal genau wissen was die Funktion tun soll?
Vielleicht ansonsten mit abs() verhindern dass etwas negatives eingebaut wird? Aber im Prinzip verändert das die Funktion ja...