Hallo,
ich nutze folgenden Code:
Point[] myBlockPositions = new Point[4];
double dHyp = 35;
double dAlpha = 37;
myBlockPositions[0].X = Math.Sin(dAlpha) * dHyp;
myBlockPositions[0].Y = Math.Cos(dAlpha) * dHyp;
Der Compile bringt mit immer die Meldung:
Der Typ "double" kann nicht implizit in "int" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
Kann doch nicht so schwer sein.
A. Ich suche nach einer Lösung.
B. Ich suche nach einer Erklärung.
🤔
Gruß Holger.
gefahren werden ist nur solange schön wie man nicht selbst lenken möchte ...
Hi,
A. Ich suche nach einer Lösung.
B. Ich suche nach einer Erklärung.
also erstens muss ich dich da auf die Dokus hinweisen, da es sich hier wirklich um eine Grundlage handelt: :rtfm: 🛈 📗
Der Grund für diese Fehlermeldung ist, dass du der X bzw. Y position nur einen Int zuweisen kannst, und keinen Double. Deshalb diese Meldung. Denn wenn aus deiner Rechnung 5,3 rauskommt, dann geht das ja nicht, weil man es ja nicht auf Pixel 5,3 positionieren kann.
Deshalb musst du das auf einen int parsen.
so, die Lösung haste da schon fast, den rest schaffst du also sicher alleine 🙂
mfg
michlG
Hallo little_budda,
du willst die Werte von double Variablen an int Variablen (in Form von Eigenschaften von Point) zuweisen.
Beim Konvertieren von double nach int gehen Informationen verloren (Nachkommastellen, etc.). Daher geht das nicht implizit.
Möglichkeiten sind eine explizite Konvertierung, die Convert - Klasse, sowie die diversen Parse - Methoden von int.
Siehe auch: Typkonvertierungen (unter primitiven Datentypen) im openbook
Das habe ich jetzt so schön getippt, dass ich es trotz der Antwort von michlG posten will 😉
Das habe ich jetzt so schön getippt, dass ich es trotz der Antwort von michlG posten will Augenzwinkern
dann geb ich meinen Senf auch noch dazu...
Wie die vorposter schon geschrieben haben, du musst den Double-Wert manuell nach int casten. Casten heißt soviel wie "Du weißt mehr als der Compiler". Der Compiler weißt zum Beispiel nicht wie er mit 4,3 verfahren soll. Auf oder Abrunden. Dasselbe ist mit unendlich (oder minus unendlich) den der Int-Wert nicht darstellen kann. Der Cast von Int nach Double beispielsweise führt der Compiler automatisch durch, denn alle Werte die mit Int dargestellt werden können, kannst du auch mit Double darstellen.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
du könntest den wert auch teilen bei zB 5,3 in eine 5 und eine 3 und dann bei der nach kommazahl auf oder abrunden lassen somit erhälts du volle(ganze) zahlen und musst sie nur noch explizit in ein int convertieren
aber vllt gibts ja auch eine rundungs methode bei c# das weiß ich jetzt nicht
private int Main()
{
string programmingSkills = getMySkills("programming")
return = 1;
}
Math.Round + zusätzliches Casten nach int (Rückgabe ist ein double, da die Stelle zum Runden noch angegeben werden kann)
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
aber vllt gibts ja auch eine rundungs methode bei c# das weiß ich jetzt nicht
Klar gibts die Math.Round()
edit: tjo da war ich wohl ne spur zu langsam
^^ okey na dann is das problem doch gelöst ^^
brauchte die math methoden bis jetzt noch nicht 😉 aber nun hab ich auch wieder was gelernt
private int Main()
{
string programmingSkills = getMySkills("programming")
return = 1;
}
Hrm, die Vorposter haben zwar allesammt recht - nur wenn ich Sin und Cos schon sehe denke ich mal möchtest schon exakte Ergebnisse erzielen und diese auch irgendwann mal Grafisch exakt darstellen. Nutze lieber PointF und für die Grafische Darstellung ebenso den floating Wert.
Wenn es alerdings egal sein sollte ob das Ding richtig dargestellt wird oder nicht, vergiss das posting 😉
Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(
In WPF sind Koordinaten Dezimalzahlen 😉
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Na ja kritzel derzeit immer noch im GDI herum 😮)
Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(