CS0029 Der Typ "double" kann nicht implizit in "string" konvertiert werden?
Bei mir kommt immer in c# die fehlermeldung CS0029 Der Typ "double" kann nicht implizit in "string" konvertiert werden. die codezeilen gehen so:
double Y = 0;
Y = Y + 0.1;
5 Antworten
Das Text-Property eines Labels erwartet einen String-Wert. Daher ist eine Umwandlung deiner Zahl notwendig.
LblY.Text = Y.ToString();
// or
LblY.Text = Convert.ToString(Y);
// or
LblY.Text = $"{Y}";
// or ...
Wenn du den Wert wieder aus dem Text-Property heraushaben möchtest, musst du wiederum eine Konvertierung zurück zum numerischen Typ vornehmen. Diese könnte so aussehen:
double value = Convert.ToDouble(LblY.Text);
PS.: Gewöhne dir ruhig schon jetzt ein paar Konventionen an. Die Namen von lokalen Variablen sollten mit einem Kleinbuchstaben beginnen.
Du darfst einem String nicht ohne Weiteres einen Int-Wert zuweisen. Dafür musst du ihn zuerst konvertieren. Das geht mit der Klasse Convert mit der Funktion ToString( ).
Das Attribut Text des Labels nimmt nur Strings an.
LblY.Text = Convert.ToString(Y);
LblX.Text = Convert.ToString(X);
Y = Y + 0.1;
sieht da bei jedem knopfdruck Y + 0,1 gerechnet werden soll
Bei X wohl auch, nehme ich an?
private void BtnTest1_Click(object sender, EventArgs e)
{
LblY.Text = (LblY.Text.ToDouble() + 0.1).ToString();
LblX.Text = (LblX.Text.ToDouble() + 0.1).ToString();
}
Das wäre die schnellste Möglichkeit.
Das wird doch nicht alles sein?
Ich kenne C# nicht, aber die Fehlermeldugn impliziert ja, daß eine Konvertierung zu String stattfinden müßte und diese nicht implizit möglich ist (sondern nur explizit).
Nein, nur diese beiden Zeilen werden sicherlich nicht funktionieren.
beim komentar von Biggi1234567 habe ich den gesamten code gepostet
Kannst du deinen Kompletten Code Posten ?
Poste es am besten in einem Quelltext rein, dann kann man dir am besten Helfen
das ist der gesammte code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Ugültigkeitsbereich
{
public partial class Form1 : Form
{
private double X = 0;
public Form1()
{
InitializeComponent();
}
private void LblX_Click(object sender, EventArgs e)
{
}
private void BtnTest1_Click(object sender, EventArgs e)
{
double Y = 0;
Y = Y + 0.1;
X = X + 0.1;
LblY.Text = Y;
LblX.Text = X;
}
private void BtnTest2_Click(object sender, EventArgs e)
{
}
private void BtnExit_Click(object sender, EventArgs e)
{
Close();
}
private void LblY_Click(object sender, EventArgs e)
{
}
private void LblZ_Click(object sender, EventArgs e)
{
}
}
aber dann kan ich damit doch nicht mehr rechnen oder
ist ne übungsaufgabe weil ich grade c# lerne und ich mus damit rechnen wie man an den
Y = Y + 0.1;
sieht da bei jedem knopfdruck Y + 0,1 gerechnet werden soll
beim komentar von Biggi1234567 habe ich den gesamten code gepostet