1

嗨,在这段代码中,我试图将双精度从标签转换为变量,但我遇到了异常

“无法将‘System.Windows.Forms.Label’类型的对象转换为‘System.IConvertible’类型。”

在该"convert.toDouble(lblPricekey);"地区,我不知道为什么。

  private void btnAddtoTotal_Click(object sender, EventArgs e)
    {
        double numPadTotal;
        numPadTotal = Convert.ToDouble(lblPricekey.Text);

        double finalTotal = total + numPadTotal;
        txtTotal.Text = finalTotal.ToString();
    }
4

4 回答 4

3

您正在转换Labeldouble. 你应该转换Label.Text.

numPadTotal = Convert.ToDouble(lblPricekey.Text);
于 2013-01-12T20:31:15.823 回答
2

尝试:

private void btnAddtoTotal_Click(object sender, EventArgs e)
{
    double numPadTotal = Convert.ToDouble(lblPricekey.Text);

    double finalTotal = total + numPadTotal;
    txtTotal.Text = finalTotal.ToString();
}
于 2013-01-12T20:31:01.270 回答
2

lblPricekey是 的一种label。您无法将其转换为double. 使用Text属性进行转换。它代表string. 从 看MSDN

获取或设置 Label 控件的文本内容。

试试这样;

numPadTotal = Convert.ToDouble(lblPricekey.Text);
于 2013-01-12T20:31:17.350 回答
1

最好的方法是使用TryParse 方法

            double numPadTotal;
            var IsDouble = double.TryParse(lblPricekey.Text, out numPadTotal);
            if (IsDouble)
            {
                double finalTotal = total + numPadTotal;
                txtTotal.Text = finalTotal.ToString();
            }
于 2013-01-12T20:37:36.877 回答