问题描述
|
我收到错误
int pocet = int.Parse(textBox1.Text);
它说数据格式有些错误,但是我只在TextBox1中写自然数
解决方法
我怀疑您那里有一个空字符串,在开始或结尾有空格,或者您正在用数千个分隔符书写。
您可以指示Int32.Parse方法处理以下某些情况:
Int32.Parse(
\" -12,340 \",NumberStyles.AllowLeadingWhite |
NumberStyles.AllowThousands |
NumberStyles.AllowTrailingWhite |
NumberStyles.AllowLeadingSign,CultureInfo.CurrentCulture));
请注意,最后的当前区域性很重要,因为千位分隔符会有所不同,具体取决于用户计算机设置的区域性。
但是,这仍然无法处理空字符串-只需在执行解析之前检查字符串是否为空即可。
,我可能会使用TryParse方法,该方法不会在出现不良数据时不会引发异常,但是将允许您使用控制流和逻辑来处理它:
int number;
bool result = Int32.TryParse(TextBox.Text.Trim(),out number);
if (result)
{
//Carry On/
}
else
{
//Handle input error
}
,如果您使用自然数,则使用
NumericUpDown控件
int pocet = int.Parse(numericUpDown1.Value.ToString());
,尝试:
int intValueFromTbx = Convert.ToInt32(textBox1.Text)
,尝试使用
Convert.ToInt32(textBox1.Text);
还要进行调试以确保转换时textBox1.Text
中只有整数。
,使用此方法:
int pocet = Int32.Parse(TextBox1.Text.ToString());
,我也有同样的问题。...请确保您使用正确的Cap编号
9
9
第一个会工作,第二个不会!
希望这可以帮助
@txshon