eval()'d code(1) : eval()'d code on line 1
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
addition
ausgeben
beispiel
beliebiger genauigkeit
code
ergebnis
fehler
formel
funktion
glauben
komma
machen
realistischer zinssatz
sinn
subtraktion
unterschied
url
wiederholung
zahl
zusammensetzen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Lass dir mit
den Programmcode ausgeben der sonst perecho()
ausgeführt wird... poste das dann hier, außer du findest den Fehler selbst.eval()
Warum verwendest du überhaupt eval? -
Auf deiner HP stimmt außerdem die datenbankverbindung nicht, wenn du es versuchst hier auszuführen.
Fühlst du über eval irgendeine datenbankabfrage durch?
hackyourlife schrieb:
Warum verwendest du überhaupt eval?
bei rekursiven funktionen macht ein eval durchaus sinn, um die formel erst zusammen zu schustern und dann auszuführen. so verringert man rundungstoleranzen.
Beitrag zuletzt geändert: 6.7.2012 16:44:32 von sebulon -
sebulon schrieb:
Wenn du eine lange Formel hast und sie von PHP berechnen lässt wird trotzdem gerundet... Grund: PHP kann nicht mit beliebiger Genauigkeit Zahlen verarbeiten (zumindest nicht als Standard, mit bc funktioniert das für ganze Zahlen).
hackyourlife schrieb:
bei rekursiven funktionen macht ein eval durchaus sinn, um die formel erst zusammen zu schustern und dann auszuführen. so verringert man rundungstoleranzen.
Warum verwendest du überhaupt eval?
Intern müssen die Ergebnisse genauso zwischengespeichert werden, und dabei wird gerundet. Ob du jetzt selbst sagst wo zwischengespeichert wird oder nicht sollte keinen Unterschied machen...
eval ist fast nie eine gute Lösung, da das ein extremes Sicherheitsrisiko darstellt. Auf lima-city ist eval übrigens gesperrt
Wenn du den Fehler finden willst musst du den Code der mit eval ausgeführt werden sollte ausgeben und wenn du willst das sich das wer von uns anschaut hier posten... -
ich glaube, du hast nciht ganz verstanden, was ich meinte.
bei rekursiven funktionen ist es von vornherein nie genau festgelegt, wie oft bestimmte programmteile Aufgerufen werden, sondern es resultiert aus der programmausführung. wenn du eine berechnung hast, die 20 mal ausgeführt wird, wobei das ergebnis je weiter verarbeitet wird (PHP rundet glaube ich standardmäßig auf 20 stellen nach dem Komma), dann wirst du bei 100 ausführungen bereits unterschiede vor dem Komma sehen können, falls es sich nciht gerade um addition oder subtraktion handelt...
nimm mal als beispiel die folgende Zinseszins-Situation:
vermehre die Zahl 1 über 200 Abrechnungszeiträume um 1.25% (Absolut 1.00125) das ist heutzutage ein realistischer Zinssatz. 200 Zinsperioden ist zwar bereits unrealistisch, aber hier gehts ja nciht um das beispiel, sondern um den Fakt an sich
Die Formel dazu lautet:
k*(Absoluter_zinssatz)^(Anzahl_zinsperioden)
in unserem fall 1*/{200}1.00125 ({200} steht für 200 wiederholungen)
du kannst jetzt 200 mal über eine while schleife eine funktion aufrufen, die dir das ergebnis je verändert, du kansnt aber auch einen String zusammensetzen und er rechnet das mit einem mal aus. probier das mal aus und du solltest unterschiede sehen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage