所以我在这里解释了这个问题: 有3个文本框,其中两个我们应该输入一些要添加的数字,第三个应该显示这两个数字的总和。
错误: 不能将'string'类型转换为'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;
}
}
}
我无法弄清楚
答案 0 :(得分: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;
}
答案 1 :(得分: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();
}
}