2017-05-31 3 views
-2

So hier bin ich gona das Problem zu erklären: Es gibt 3 Textfelder, in zwei von ihnen sollten wir einige Zahlen eingeben und das dritte sollte die Summe dieser zeigen zwei Zahlen.kann nicht konvertieren Typ 'String' in 'doppelt'

Fehler: kann nicht implicity convert Typ ‚string‘ zu ‚double‘

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 Detyra2 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     double nr1 = Convert.ToDouble(textBox1.Text); 
     double nr2 = Convert.ToDouble(textBox2.Text); 
     double nr3 = nr1 + nr2; 
     string shfaq = Convert.ToString(nr3); 
     textBox3.Text = shfaq; 
    } 
} 
} 

Ich kann es nicht herausgefunden

+1

der Fehler Ihnen genau sagt, was das Problem ist .. was kann man nicht herausfinden ..? Was passiert, wenn Sie den Code debuggen ..? – MethodMan

+0

Ich sehe keinen Fehler in Ihrem Code - es sollte Ihnen sagen, welche Zeile den Fehler hat? – NetMage

+1

Hinweis - Verwenden Sie den Debugger, um die Werte von 'textBox1.Text' und' textBox2.Text' zu überprüfen. Früher oder später sollten Sie lernen, wie man Debugger einsetzt. Also warum nicht jetzt anfangen zu lernen? –

Antwort

0

Wenn mit Textboxen zu tun, die null oder leer sein kann, die ich gefunden habe Verwenden Sie am besten die TryParse-Familie, um Konvertierungen durchzuführen.

private void button1_Click(object sender, EventArgs e) { 
    double nr1, nr2; 

    double.TryParse(textBox1.Text, out nr1); 
    double.TryParse(textBox2.Text, out nr2); 
    double nr3 = nr1 + nr2; 
    string shfaq = nr3.ToString(); 
    textBox3.Text = shfaq; 
} 
+0

Gern geschehen. Bitte beachten Sie, dass Sie die Frage als beantwortet markieren –

0

Sie können double.TryParse verwenden, um die Konvertierung durchzuführen. TryParse nimmt einen String-Eingang und einen doppelten out-Parameter, der den konvertierten Wert enthält, wenn er übergeben wird. TryParse gibt false zurück, wenn die Konvertierung fehlschlägt, so können Sie das überprüfen und etwas anderes bei einem Fehler tun:

private void button1_Click(object sender, EventArgs e) 
{ 
    double nr1; 
    double nr2; 

    if (!double.TryParse(textBox1.Text, out nr1)) 
    { 
     MessageBox.Show("Please enter a valid number in textBox1"); 
     textBox1.Select(); 
     textBox1.SelectionStart = 0; 
     textBox1.SelectionLength = textBox1.TextLength; 
    } 
    else if (!double.TryParse(textBox2.Text, out nr2)) 
    { 
     MessageBox.Show("Please enter a valid number in textBox2"); 
     textBox2.Select(); 
     textBox2.SelectionStart = 0; 
     textBox2.SelectionLength = textBox2.TextLength; 
    } 
    else 
    { 
     double nr3 = nr1 + nr2; 
     textBox3.Text = nr3.ToString(); 
    } 
} 
Verwandte Themen