0

我正在尝试计算不同物体的面积。所有这些对象都有自己的WinForm.我想在一个CalculationBase类中进行计算,但是当我尝试这样做时,我不断收到一条消息,FormatException.这是我的代码:

在我Program.cs的中,我创建了对要计算的表格的引用。

static class Program
    {
        public static frmRectangle formRect;
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            formRect = new frmRectangle();

            Application.Run(new frmMain());
        }
    }

CalculationBase类中,我将变量声明为double breadth, height;并输入以下代码进行计算:

private void Calculations()
        {
            FormCheck();
            if (rect)
            {

                Debug.WriteLine("Rectangular is open");

                // Area
                Program.formRect.txtFormArea.Text = string.Format("A = {0} * {1}", b, h);
                if (millimeters)
                    i = (int)Math.Pow(10, 2);
                else if (centimeters)
                    i = (int)Math.Pow(10, 4);

                areaPrimair = Math.Round((b * h), 4);
                areaSecundair = Math.Round((areaPrimair / i), 4);

                Program.formRect.txtAreaPrimair.Text = areaPrimair.ToString();
                Program.formRect.txtAreaSecundair.Text = areaSecundair.ToString();
            }
        }

此函数在 ClickEvent 中调用:

private void btnCalculate_Click(object sender, EventArgs e)
        {
                try
                {
                    breadth = double.Parse(Program.formRect.txtBreadthInput.Text);
                    height = double.Parse(Program.formRect.txtHeightInput.Text);

                    Calculations();
                }
                catch(FormatException)
                {
                    MessageBox.Show("Some values are invalid. Please check your input.", "Invalid value");
                }
            }
        }

如前所述,我的程序继续显示 FormatException 的消息。

4

1 回答 1

1

当您将空字符串或非数字字符串传递给 时 Double.Parse(""),您会得到格式异常。在点击按钮之前,请确保您输入的是双字符串

于 2012-09-28T07:33:30.163 回答