簡體   English   中英

System.FormatException: '輸入字符串的格式不正確。' WinForms

[英]System.FormatException: 'Input string was not in a correct format.' WinForms

我收到此錯誤:此異常最初是在此調用堆棧中引發的:有人可以幫助我嗎? 我嘗試用Double.Parse替換Convert.ToDouble我已經定義了price_salad和其他的,但我無法讓它工作? 這是在 c#

[External Code]
menu1.frm_item.button4_Click(object, System.EventArgs) in items.cs
[External Code]
menu1.Program.Main() in Program.cs . 

誰能幫我? 我嘗試用Double.Parse替換Convert.ToDouble我已經定義了price_salad和其他的,但我無法讓它工作? 這是在 c#

private void button4_Click(object sender, EventArgs e)
{
    double[] itemcost = new double[13];`
    itemcost[0] = Convert.ToDouble(textBox5.Text) * price_salad1;
    itemcost[1] = Convert.ToDouble(textBox6.Text) * price_salad2;
    itemcost[2] = Convert.ToDouble(textBox7.Text) * price_salad3;
    itemcost[3] = Convert.ToDouble(textBox8.Text) * price_pizza1;
    itemcost[4] = Convert.ToDouble(textBox10.Text) * price_pizza2;
    itemcost[5] = Convert.ToDouble(textBox9.Text) * price_pizza3;
    itemcost[6] = Convert.ToDouble(textBox11.Text) * price_dessert1;
    itemcost[7] = Convert.ToDouble(textBox13.Text) * price_dessert2;
    itemcost[8] = Convert.ToDouble(textBox12.Text) * price_dessert3;
    itemcost[9] = Convert.ToDouble(textBox14.Text) * price_drinks1;
    itemcost[10] = Convert.ToDouble(textBox16.Text) * price_drinks2;
    itemcost[11] = Convert.ToDouble(textBox15.Text) * price_drinks3;
}

我猜格式異常是由包含無效或空值的文本框引起的。 要解決此問題,您需要確保 TextBox 值在計算中使用它們之前是有效的。 我將使用內聯的 IF 語句來演示這一點。

例子:

double[] itemcost = new double[13];` //You shouldn't use double for storing cost
int qty=0;
itemcost[0] = ( Int32.TryParse(textBox5.Text, out qty) )? qty * price_salad1: 0d;

Int32.TryParse 方法嘗試將數字的字符串表示形式轉換為 integer。 如果返回true,則轉換成功,否則返回false。 代碼片段使用內聯 IF 語句首先檢查轉換是否有效。 如果是,則執行計算,否則返回 0;

您應該查看的參考資料:

Int32.TryParse() Function

? 運算符(在線 IF)

存儲貨幣值的最佳數據類型

十進制數據類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM