2017-05-31 75 views
-2

所以我在這裏解釋了這個問題: 有3個文本框,其中兩個我們應該鍵入一些數字來添加,第三個應該顯示這些總數兩個數字。不能將類型'字符串'轉換爲'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; 
    } 
} 
} 

我無法弄清楚

+1

錯誤恰好告訴你問題是什麼..什麼你不能弄清楚..?當你調試代碼時會發生什麼? – MethodMan

+0

我在代碼中看不到錯誤 - 它應該告訴你哪一行有錯誤? – NetMage

+1

提示 - 使用調試器檢查「textBox1.Text」和「textBox2.Text」的值。遲早你應該學習如何使用調試器。那麼爲什麼不現在開始學習? –

回答

0

當文本框可以爲null或空打交道,我發現最好使用TryParse家族來進行轉換。

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

不客氣。請考慮將問題標記爲已回答 –

0

您可以使用double.TryParse來進行轉換。 TryParse需要一個字符串輸入和一個雙重out參數,如果它通過,它將包含轉換後的值。 TryParse返回false如果轉換失敗,這樣你就可以檢查並做一些失敗不同:

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(); 
    } 
} 
相關問題