Ich habe diesen Code: http://pastebin.com/Sd9WKZFrPHPExcel basierte Funktion RATE() Rückkehr NAN()
Wenn ich so etwas wie rate(60, -6000, 120000)
nennen es gibt mir ein NAN
Ergebnis, aber die gleiche Funktion auf MS Excel gibt mir 0,04678...
. Ich habe das gleiche Problem versucht -5000, -4000, -3000 und -2000.
Wenn ich den Code debuggen, sehe ich, dass über die 8/9-Iteration die Zeilennummer 29 beginnt, ein NAN
Ergebnis zurückzugeben, so dass alle anderen Ergebnisse zu NAN
drehen.
ABER, wenn ich etwas wie rate(60, -1000, 120000)
aufrufen, gibt es mir eine float -0.02044...
, genau das gleiche Ergebnis von MS Excel.
Ich habe bereits tryed, aber auf diese Weise die Ergebnisse von -6000 all von mathematischen Berechnungen in BCMath Funktionen zu konvertieren, ist falsch (-1,0427 ... statt 0,04678 ...), aber unter Verwendung von - 1000 ist das Ergebnis korrekt und entspricht dem Ergebnis von Excel.
Gibt es eine Möglichkeit, damit es richtig funktioniert?
Vielen Dank im Voraus für alle nützlichen Anblick darüber.
dies nur guessings ist nimmt, das sieht in erster Linie als Berechnungs Problem. - ist es möglich $ Rate kann negativ werden, so dass log() in Zeile 29 undefiniert ist? - sind Ihre Klammern richtig eingestellt? – worenga
Hallo @ Mightyuhu, es gibt keine sintaxe Fehler verursachen mit -1000 funktioniert es gut. Gleichzeitig ist es eine Funktion von stabilem phpexcel. Danke trotzdem. – slinstj
@sidtj @ Mightyuhu ist richtig, 'Rate (60, -6000, 120000)' erzeugt ein Zwischenergebnis von Rate <1 (Sie haben dies bereits bei der 8./9. Iteration identifiziert). Sie müssen an Ihrem Algorithmus arbeiten –