我收到错误int pocet = int.Parse(textBox1.Text);
它说数据有一些不好的格式,但我只写自然数字到TextBox1
答案 0 :(得分:2)
我可能会使用TryParse方法,当有坏数据时不会抛出异常,但是允许你使用控制流和逻辑来处理它:
int number;
bool result = Int32.TryParse(TextBox.Text.Trim(), out number);
if (result)
{
//Carry On/
}
else
{
//Handle input error
}
答案 1 :(得分:2)
我怀疑你要么在那里得到一个空字符串,在开头或结尾都有空格,或者你是用数千个分隔符写的。
您可以指示Int32.Parse方法处理其中一些这样的情况:
Int32.Parse(
" -12,340 ",
NumberStyles.AllowLeadingWhite |
NumberStyles.AllowThousands |
NumberStyles.AllowTrailingWhite |
NumberStyles.AllowLeadingSign,
CultureInfo.CurrentCulture));
请注意最后的当前文化位很重要,因为千位分隔符将根据用户计算机设置的文化而有所不同。
这仍然不会处理空字符串 - 只需在进行解析之前检查字符串是否为空。
答案 2 :(得分:1)
如果使用自然数,则使用
NumericUpDown Control
int pocet = int.Parse(numericUpDown1.Value.ToString());
答案 3 :(得分:0)
尝试:
int intValueFromTbx = Convert.ToInt32(textBox1.Text)
答案 4 :(得分:0)
尝试使用
Convert.ToInt32(textBox1.Text);
同时进行调试以确保在转换时textBox1.Text
只有整数。
答案 5 :(得分:0)
使用此方法:
int pocet = Int32.Parse(TextBox1.Text.ToString());
答案 6 :(得分:0)
我遇到同样的问题....请确保使用正确的上限号码
9和
9
第一个会工作,第二个不会!
希望这有帮助
@txshon