C#温度转换表

时间:2015-12-06 21:10:39

标签: c#

我有这个表格,因为我所在的学校课程。我在运行程序时遇到了麻烦。以下是要求:

  • 当用户单击要转换的按钮时,第一步是验证文本框中的用户输入。任何实数都是可以接受的。如果文本框中的用户输入不是实数,请在结果输出标签中显示相应的消息,如下所示。 “错误:请输入要转换的数字温度。”

  • 如果用户输入是实数,请将其存储,然后根据所选的“转换为”单选按钮计算转换后的温度值。然后在输出标签中显示结果。请按照此示例获取适当的格式: “华氏72.4度转换为22.44摄氏度。”

  • 当用户单击按钮清除时,表单应重置为其默认状态,准备输入。提示:除了清除输入文本框和结果输出标签之外,还有其他事情要做。

  • 当用户点击按钮退出时,表单应该关闭,结束程序

这是我的代码:

namespace TemperatureConversionForm
{
    public partial class frmTemperatureConverter : Form
    {
        public frmTemperatureConverter()
        {
            InitializeComponent();
        }

        private void btnConvert_Click(object sender, EventArgs e)
        {
            double tempurature;
            double celsius;
            double fahrenheit;

            if (!double.TryParse(txtInput.Text, out tempurature) == false )
            {
                MessageBox.Show("ERROR: Please enter a numeric temperature to convert");
                txtInput.ResetText();
                txtInput.Focus();
            }

            if (rdoCelsius.Checked == true)
            {
                celsius = double.Parse(txtInput.Text);
                celsius = (5.0 / 9.0 * (txtInput - 32));
                lblConversion.Text = celsius.ToString();
            }
            else if (rdoFahrenheit.Checked == true)
            {
                fahrenheit = double.Parse(txtInput.Text);
                fahrenheit = (txtInput * 9.0 / 5.0 + 32);
                lblConversion.Text = fahrenheit.ToString();
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            txtInput.ResetText();
            lblConversion.ResetText();

            txtInput.Focus();
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

我收到2个错误:

  

代码说明

     

CS0019运营商' - '不能应用于' TextBox'类型的操作数和' Int'

     

CS0019运营商' *'不能应用于' TextBox'类型的操作数和' double'

1 个答案:

答案 0 :(得分:1)

正如编译器告诉你的那样,你正试图在TextBox对象上执行数学运算:

txtInput - 32

您可能打算对从TextBox解析的执行数学运算:

celsius = (5.0 / 9.0 * (celsius - 32));

fahrenheit = (fahrenheit * 9.0 / 5.0 + 32);

基本上,TextBox是一个对象,而不是一个值。它具有属性和功能以及对象具有的各种功能。虽然你可能想从概念上认为它代表它所拥有的价值,但语言需要你比这更具体。您从TextBox这里得到了值:

celsius = double.Parse(txtInput.Text);

然后你需要对该值本身进行计算,而不是对它所来自的TextBox对象进行计算。

相关问题