CS0029 Der Typ "double" kann nicht implizit in "string" konvertiert werden?

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);
Woher ich das weiß:Studium / Ausbildung – Softwareentwickler mit 10 Jahren Berufserfahrung 💾
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.

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

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).

Rikamo04 
Fragesteller
 17.10.2019, 18:15

beim komentar von Biggi1234567 habe ich den gesamten code gepostet

0
Rikamo04 
Fragesteller
 17.10.2019, 18:32
@KarlRanseierIII

beim komentar von Biggi1234567 habe ich den gesamten code gepostet

0

Kannst du deinen Kompletten Code Posten ?

Poste es am besten in einem Quelltext rein, dann kann man dir am besten Helfen

Rikamo04 
Fragesteller
 17.10.2019, 18:16

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)

    {

    }

  }

0
Biggi1234567  17.10.2019, 18:18
@Rikamo04

Probier mal das:



            LblY.Text = Y.ToString();


            LblX.Text = X.ToString();

 
0
Rikamo04 
Fragesteller
 17.10.2019, 18:21
@Biggi1234567

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

0
Dultus, UserMod Light   18.10.2019, 09:14
@Rikamo04

Wenn du .toString() machst, dann änderst du nicht die Variable.

Anders herum kannst du aber auch .toDouble() machen.

0