我不断收到mscorlib.dll中发生的'System.InvalidCastException'类型的异常,但未在RetailPrice的用户代码中处理

Cur*_*man 1 .net c# visual-studio visual-studio-2012

protected void btnCalculateOrder_Click(object sender, EventArgs e)
{
    OrderSession();

    if (IsValid)
    {
        double RetailPrice = Convert.ToDouble(lblRetailPrice);
        double Quantity = Convert.ToDouble(txtQuantity);
        double Tax = (.9);

        double Subtotal = RetailPrice * Quantity;
        double TotalAmount = Subtotal + Tax;

        lblSubTotal.Text = Subtotal.ToString("c");
        lblTotalAmount.Text = TotalAmount.ToString("c");
    }

}
Run Code Online (Sandbox Code Playgroud)

Ian*_*Ian 5

细心挑选,您不需要括号:

double Tax = (.9); //change to double Tax = .9; or double Tax = 0.9;
Run Code Online (Sandbox Code Playgroud)

问题:

好像你想要ConvertControls,而不是TextControls

double RetailPrice = Convert.ToDouble(lblRetailPrice); //I assume this is a Label Control
double Quantity = Convert.ToDouble(txtQuantity); //and this is a TextBox Control
Run Code Online (Sandbox Code Playgroud)

尝试将它们更改为:

double RetailPrice = Convert.ToDouble(lblRetailPrice.Text);
double Quantity = Convert.ToDouble(txtQuantity.Text);
Run Code Online (Sandbox Code Playgroud)