![]() |
Powerfunktion ungültige gleichkommaoperation
moin,
kann mir da vielleicht einer weiter helfen? es geht um eine potenzfunktion:
Delphi-Quellcode:
und um eine exponentialfunktion:
ergebnis := a*power(x,n);
Delphi-Quellcode:
so das ist ja schön und gut. nun gibt es da aber ein problem. (x verändert sich ständig)
ergebnis := (a*power(ee,x)) * ((b*power(x,n)) + c*x+d);
wenn ich für n eine ganze zahl zum beispiel 2 nehme, geht das ohne probleme. aber nehme ich nun 1.9 bricht das ganze mit dem fehler "üngültige gleichkommaoperation". wie muss ich das nun ändern, damit das trotzdem geht? sitze da jetzt total auf dem schlauch^^ bitte helft mir |
Re: Powerfunktion ungültige gleichkommaoperation
So mal aus der Hilfe:
Zitat:
Das Ergebnis ist eine Gleitkommazahl, das heist alle anderen Zahlen auch extended sein, oder du must eine funktion zur Umwandlung einbauen. Poste mal deine Varliste, was deine a,ee usw sind. Gruß Matthias |
Re: Powerfunktion ungültige gleichkommaoperation
Delphi-Quellcode:
heißt das, dass ich a,b,c,d,e,f,x,y,xs,ys,n : Double; als Extended brauche?
var
Form1: TForm1; a,b,c,d,e,f,x,y,xs,ys,n : Double; x0,y0,xB,yB,xEins,xZwei,xDrei,yEins,yZwei,yDrei,index : Integer; groesse : integer; FunktionArt : integer = 0; const ee = 2.718281828459; x ist nicht immer größer als 0. aber das dürfte ja nicht das problem sein. x^2 geht ja nur x^1.9 geht eben nicht, und bricht mit folgendem fehler ab. heißt das, dass Double nicht der richtige typ ist? danke |
Re: Powerfunktion ungültige gleichkommaoperation
Zitat:
Gruß Matthias |
Re: Powerfunktion ungültige gleichkommaoperation
Ach ja ausser dein Ergebnis soll eine Ganzzahl sein, dann kannst du natürlich
ergebnis:=round(dein Term); machen Gruß Matthias |
Re: Powerfunktion ungültige gleichkommaoperation
hmm habe jetzt oben mal
Delphi-Quellcode:
aber damit bricht er mir die powerfunktion in der potenzfunktion auch ab, wenn ich n 1.9 groß mache.
var
Form1: TForm1; a,b,c,d,e,f,x,y,xs,ys,n : Extended; damit ich das jetzt richtig verstehe. also was ist sein problem bei
Delphi-Quellcode:
dass er mir es immer abbricht bei n keine ganze zahl. der windows taschenrechner kann es auch nicht rechnen.
a*x^n also a*power(x,n);
kann mir bitte irgendwer weiter helfen, wie ich es irgendwie mache kann, dass n nicht ganzzahlig sein muss. oder geht das gar nicht. vielen vielen dank |
Re: Powerfunktion ungültige gleichkommaoperation
hoi,
'n' muss keine ganzzahl sein. die frage für mich ist wie du 'n' einen wert übergibst. Trägts du den Wert in ein Edit Feld ein oder so ? Falls ja und du gibst '1.9' ein dann versuch mal '1,9'. cya |
Re: Powerfunktion ungültige gleichkommaoperation
Liste der Anhänge anzeigen (Anzahl: 1)
als übergabe nehme ich einen schiebregler:
Delphi-Quellcode:
procedure TForm1.ScrollNChange(Sender: TObject);
begin n := -5+10*Form1.ScrollN.Position/100; FeldN.Text := FloatToStrF(n,ffFixed,6,2); end; zum download mal mein programm zum download dran. also wäre klasse, wenn mir irgendwer sagen könnte, wie ich es schaffe. |
Re: Powerfunktion ungültige gleichkommaoperation
Zitat:
In der Variablendeklaration ist n als double angegeben, double=Ganzzahl. Wenn taker in n:=1.9 schreiben will MUSS das eine Variable vom Typ float(real, extended etc) sein, sonst gaht das nicht. Gruß Matthias |
Re: Powerfunktion ungültige gleichkommaoperation
hoi,
ich glaub das problem liegt woanders. in der Hilfe zu Power() steht Zitat:
sein startwert der base ist bestimmt < 0 ... = es knallt cya |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz