C#温度转换表

本文关键字:转换 温度 | 更新日期: 2023-09-27 18:25:49

我有这张表格要交给我所在的一个学校班级。我在运行程序时遇到了问题。以下是要求:

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

  • 如果用户输入是实数,则将其存储,然后根据所选的"转换为"单选按钮计算转换后的温度值。然后在输出标签中显示结果。按照以下示例获取适当的格式:"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"answers"Int"类型的操作数

CS0019运算符"*"不能应用于"TextBox"answers"double"类型的操作数

C#温度转换表

正如编译器告诉您的那样,您正试图对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对象执行计算。