2015-07-28 261 views
1

我有三個文本框輸入小時,一個數字和一個電價和一個按鈕 ,但我有一個formatException,每當我嘗試在文本框中輸入值。 我該如何擺脫這個煩惱? 每當我編譯它運行良好,但我無法輸入值。 請幫忙。 謝謝!如何將字符串轉換爲Int?

int num1 = int.Parse(TextBox1.Text); 

double num2 = double.Parse(TextBox2.Text;); 

int num3 = int.Parse(TextBox3.Text;); 
soln1 = num1 * num2 * num3; 
MessageBox.Show(soln1.ToString()); 
+5

在哪一行上得到此異常?什麼是您的文本框值?什麼是你的「CurrentCulture」?順便說一句,你的代碼中有一個額外的';'。 –

+0

你真的有double.Parse(TextBox2.Text;);相反,如果double.Parse(TextBox2.Text); – demonplus

+0

與num3相同 – demonplus

回答

0

嘗試

int num1 = int.Parse(TextBox1.Text); 

double num2 = double.Parse(TextBox2.Text.Replace(".", ",")); // <---- 

int num3 = int.Parse(TextBox3.Text;); 
soln1 = (int)(num1 * num2 * num3); // <---- 
MessageBox.Show(soln1.ToString()); 
+0

oooh lovelythanks –

0

您試圖乘以一個double和一個整數。 嘗試將您的整數轉換爲double,並將您要存儲結果的變量聲明爲double。

如果真的需要是一個整數,然後將其轉換計算後

+0

問題在於將字符串轉換爲數字而不是數字類型 –

+0

在倒數第二行,int * double永遠不會工作。 存在多個問題 – DrLazer

+0

int * double的結果是double。你可以嘗試一下。這裏沒有問題,除非soln1的類型是int。 –

0

而不是使用解析使用的TryParse的,這樣的:

if (int.TryParse(TextBox1.Text,out num1) && 
double.TryParse(TextBox2.Text,out num2) && 
int.TryParse(TextBox3.Text,out num3)) 
{ 
    soln1 = num1 * num2 * num3; 
} 
+1

這工作謝謝 –

+1

@ShaddyWizKay不要忘記標記爲答案,如果它解決了您的問題 –

2

嘗試改變解析如此轉換

int num1 = Convert.ToInt32(TextBox1.Text); 
double num2 = Convert.ToDecimal(TextBox2.Text;); 
int num3 = Convert.ToInt32(TextBox3.Text;); 
soln1 = num1 * num2 * num3; 
MessageBox.Show(soln1.ToString()); 
0

嘗試使用:

int num1 = integer.parseInt(TextBox1.Text); 
double num2 = double.Parse(TextBox2.Text); 

int num3 = Integer.ParseInt(TextBox3.Text); 
soln1 = num1 * num2 * num3; 
MessageBox.Show(soln1.ToString);