2.Wurzel ziehn
-
ich habe ein Programm, indem ungefär folgendes gerchnet wird
int variable1=1; int variable2=1; float variable3; variable3=(variable1*varible1+variable2*variable2)^1/2; Ich habe mir gedacht man könnte so die Wurzel ausrechnen aber ich bekomme jedes mal 2 heraus! Warum? Wie kann man das anders lösen??
edit: bitte in mathematik verschieben
-
#include <cmath> variable3 = sqrt(variable1*varible1+variable2*variable2);
-
sqrt
-
danke
-
Vielleicht noch als Hinweis, warum dein Ansatz nicht funktioniert hat:
1/2 ist 0 (Ganzzahldivision), und ^ ist nicht "hoch", sondern "bitweise XOR".
Und (1*1 + 1*1) XOR 0 ist 2.
-
error C2668: 'sqrt' : ambiguous call to overloaded function
was muss ich machen um diesen fehler zu beheben??
alles zu long konvertiern??
-
Es hat sich erübrigt!
Hab die Lösung gefunden!
-
halo schrieb:
error C2668: 'sqrt' : ambiguous call to overloaded function
was muss ich machen um diesen fehler zu beheben??
alles zu long konvertiern??Da Du float als Ergebnis haben willst, würde ich die Parameter nach float casten:
variable3 = sqrt(static_cast<float>(variable1*varible1+variable2*variable2));
-
Ich habs mir etwas kompizierter gemacht und Variable 1 und 2 einfach in float gecastet.