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
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
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.
![](https://images.gutefrage.net/media/user/Knomle/1653236039619_nmmslarge__578_867_1611_1611_511d5261e563c0e6c59a552b5669e3f6.jpg?v=1653236040000)
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);
![](https://images.gutefrage.net/media/user/Dultus/1719823117497_nmmslarge__0_0_450_450_9e1367268a0c3376f63d5823c5a4b995.png?v=1719823118000)
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.
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
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).
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
Nein, nur diese beiden Zeilen werden sicherlich nicht funktionieren.
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
beim komentar von Biggi1234567 habe ich den gesamten code gepostet
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Kannst du deinen Kompletten Code Posten ?
Poste es am besten in einem Quelltext rein, dann kann man dir am besten Helfen
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
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)
{
}
}
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
aber dann kan ich damit doch nicht mehr rechnen oder
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/user/Dultus/1719823117497_nmmslarge__0_0_450_450_9e1367268a0c3376f63d5823c5a4b995.png?v=1719823118000)
Wenn du .toString() machst, dann änderst du nicht die Variable.
Anders herum kannst du aber auch .toDouble() machen.
beim komentar von Biggi1234567 habe ich den gesamten code gepostet