Potenzieren! Aber wie?

Hi Leute,
nachdem ihr mir bei meinem letzten Problem geholfen habt hat sich mittlerweile das nächste aufgetan:

Wie kann ich diese Formel in Delphi berechnen:
EndPreisDieb = (AnfPreisDieb * FaktorDieb^StufeDieb)
(vobei ^ = hoch ist

Habe schon sämtliche Varianten durchprobiert und auch schon viel Zeit mit suchen verbracht, aber bin zu keiner Lösung gekommen. :frowning:

Bitte helft mir, ohne Hilfe komme ich nicht weiter …

Hallo Rayzer,

Wie kann ich diese Formel in Delphi berechnen:
EndPreisDieb = (AnfPreisDieb * FaktorDieb^StufeDieb)
(vobei ^ = hoch ist
Habe schon sämtliche Varianten durchprobiert und auch schon
viel Zeit mit suchen verbracht, aber bin zu keiner Lösung
gekommen. :frowning:

Hast Du auch diese Variante probiert (für die Potenz):
http://www.dsdt.info/tipps/?id=619
Den Rest wirst Du ja wohl auch alleine hinkriegen :wink:

Viele Grüsse
Klaus Bernstein

Ja hab ich schon probiert, rausgekommen ist das:

AnfPreisDieb := 2500;
StufeDieb := StrToInt(LblStufe.Caption);
EndPreisDieb := AnfPreisDieb*Power(0.97, StufeDieb)

Error: Incompatible types: got „Extended“ expected „LongInt“
" Zeile im Quellcode.

(Ja ich weis das ich euch auf die Nerven gehe komm aber wirklich nicht weiter bei dem ****)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rayzer,

Wie kann ich diese Formel in Delphi berechnen:
EndPreisDieb = (AnfPreisDieb * FaktorDieb^StufeDieb)
(vobei ^ = hoch ist
Habe schon sämtliche Varianten durchprobiert und auch schon
viel Zeit mit suchen verbracht, aber bin zu keiner Lösung
gekommen. :frowning:

Hast Du auch diese Variante probiert (für die Potenz):
http://www.dsdt.info/tipps/?id=619

Ja hab ich schon probiert, rausgekommen ist das:

AnfPreisDieb := 2500;
StufeDieb := StrToInt(LblStufe.Caption);
EndPreisDieb := AnfPreisDieb*Power(0.97, StufeDieb)

Error: Incompatible types: got „Extended“ expected
"LongInt"
" Zeile im
Quellcode.
(Ja ich weis das ich euch auf die Nerven gehe komm aber
wirklich nicht weiter bei dem ****)

Das Nerven hält sich in Grenzen und kann bei der nächsten Anfrage gewaltig reduziert werden wenn Du gleich alle Fehlermeldungen mitteilst. Es geht also gar nicht direkt um das Potenzieren sondern um Typvereinbarungen :open_mouth:
Also, wie ich an deinem StrToInt sehe, weisst Du ja, dass man in Delphi genau auf die Typen (String, int usw.) achten muss. Soweit, so gut. Was Du offenbar nicht beachtet hast, ist, dass die Funktion Power für alle Werte Variablen vom Typ extended erwartet, also besonders genaue Fliesskommazahlen. Wenn Du also statt

tufeDieb := StrToInt(LblStufe.Caption);

ein

tufeDieb := StrToFloat(LblStufe.Caption);

nimmst, und dann die anderen Variablen praktischerweise auch als Extended deklariert sind, müsste das ganze eigentlich klappen. Habe gerade kein Delphi zur Hand, um das zu überprüfen :frowning:
Ich hoffe, Du hast mich verstanden, wenn nicht, nimm dein Delphi-Lehrbuch zur Hand und lies mal das Kapitel über Typvereinbarungen ganz genau durch.
Oder such dir hier ein Tutorial raus:
http://www.dsdt.info/links/links.php?id=354

Viel Erfolg
Klaus Bernstein

[…]
Also, wie ich an deinem StrToInt sehe, weisst Du ja, dass man
in Delphi genau auf die Typen (String, int usw.) achten muss.
Soweit, so gut. Was Du offenbar nicht beachtet hast, ist, dass
die Funktion Power für alle Werte Variablen vom Typ extended
erwartet, also besonders genaue Fliesskommazahlen. Wenn Du
also statt

tufeDieb :=
[…]

und dann die

anderen Variablen praktischerweise auch als Extended
deklariert sind, müsste das ganze eigentlich klappen. Habe
gerade kein Delphi zur Hand, um das zu überprüfen :frowning:
[…]
Viel Erfolg
Klaus Bernstein

Danke für deine Hilfe Klaus ich habe es geschafft …
Musste nur, wie du es gesagt hast, andere Variablentypen nehmen und dann hat es geklappt.
Also danke nochmal und ich melde mich wieder wenn ich weitere Probleme habe.

Rayzer

Normalerweise klappt es nur beim Extended -> Integer nicht, Integer -> Extended ist jedenfalls zumindest bei Borland Delphi (sowohl Konsole alsauch GUI) kein Problem. Genauso wie bei Char -> String. String -> Char gibt dagegen ein Problem …

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]