2015-07-28 179 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);