fehler bei rechnung warum?

Otianer

Mitglied
Hallo Leute

Ich schreibe grad nen Programm das bei einem Spiel bestimmte Punkte ausrechnen soll.
ich habe die formel so in mein programm eingetragen:

Code:
Punkte.Text = Convert.ToString(1426.79/(1+918.836*2.71828^(0.00386405*Convert.ToDouble(Wertung.Text))));
aber warum sagt er mir folgenden fehler:

Der Operator "^" kann nicht auf Operanden vom Typ "double" und "double" angewendet werden.
 
Hm, dann versuchs doch einmal mit der Methode System.Math.pow. Die sollte sich auf jeden Fall nicht an Double-Werten aufhängen.

EDIT: Die wird so verwendet:
Code:
double ergebnis=System.Math.pow(10,3);
Wobei 10 die Basis und 3 den Exponenten darstellt.
 
Zuletzt bearbeitet:
hallo

danke dir er gibt mir nun keinen fehler mehr aus aber eine zahl die nicht stimmt die rechnung is korrekt aber irgendwie gibt er mir 0 aus wenn ich als wertung 2000 eingebe obwohl bei der berechnung 1055 herauskommen soll hab die das ganze jetzt so geschrieben:

Code:
Punkte.Text = Convert.ToString(Math.Round(1426.79/(Math.Pow(1+918.836*2.71828,0.00386405*Convert.ToDouble(Wertung.Text))),0));
 
Hm, dann mach mal die Rechnung Schritt für Schritt und guck mal im Debugger, was dafür sorgt, dass daraus sowas wird. Ob das Pow oder etwas anderes dafür verantwortlich ist.
 
Bitte beim Posten darauf achten, dass auch das richtige Forum erwischt wird ... die angegebene Frage hier hatte rein gar nichts mit Windows Forms zu tun.
 
hallo

danke dir er gibt mir nun keinen fehler mehr aus aber eine zahl die nicht stimmt die rechnung is korrekt aber irgendwie gibt er mir 0 aus wenn ich als wertung 2000 eingebe obwohl bei der berechnung 1055 herauskommen soll hab die das ganze jetzt so geschrieben:

Code:
Punkte.Text = Convert.ToString(Math.Round(1426.79/(Math.Pow(1+918.836*2.71828,0.00386405*Convert.ToDouble(Wertung.Text))),0));

Hallo,

ich hatte letztens ein ähnliches Problem und habe lange nach einer Lösung dafür gesucht. Wie des öfteren in einem solchen Fall ist diese denkbar einfach: Der Compiler hat Probleme, Kommazahlen als solche zu behandeln, sofern sie nicht explizit als solche gekennzeichnet werden. Es ist daher erforderlich, jede Position der Gleichung explizit z.B. als float oder double zu casten:

Code:
Punkte.Text = Convert.ToString(Math.Round((float)(1426.79)/(Math.Pow(1+(float)(918.836)*(float)(2.71828),(float)(0.00386405)*Convert.ToDouble(Wertung.Text))),0));

In meinem Fall hat es geklappt, und ich hoffe, es hilft auch bei Dir.
 
Zurück