转换为整数时,输入字符串的格式不正确

时间:2015-02-12 09:13:46

标签: c#

排队:

int d = Convert .ToInt32 ( TxtAmount.Text); 

出现错误

  

输入字符串的格式不正确

我想转换TxtAmount.Text内的数字。如果它是十进制的负数或没有-的整数,然后再将其转换为字符串,因为ConvertNumbersToArabicAlphabet参数是字符串。

int d = Convert .ToInt32 ( TxtAmount.Text);
ConvertNumbersToArabicAlphabet a = new ConvertNumbersToArabicAlphabet(d.ToString());
Label2.Text = a.GetNumberAr();

4 个答案:

答案 0 :(得分:1)

我先检查输入是否为数字,然后使用Math.Abs进行转换,以确保结果始终为正数:

int result = 0;

// Does text contain numbers only (and maybe a leading "-")?
if (Regex.IsMatch(TxtAmount.Text, @"^-?[0-9]+$"))
{
    // Try to parse an int from it. If successful, convert it to
    // a positive number in any case (= ignore the leading "-")
    if (Int32.TryParse(TxtAmount.Text, out result))
        result = Math.Abs(result);
}

// In all other cases, the result is 0
return result;

答案 1 :(得分:0)

这是因为Youse文本框为空。 检查天气你的文本框是否有值

if(!String.IsNullOrWhiteSpace(TxtAmount.Text))
{
   int d = Convert .ToInt32 ( TxtAmount.Text); 
}

答案 2 :(得分:0)

int d = Convert .ToInt ( TxtAmount.Text); 

如果文本框中有整数值,则可以使用此选项。 如果文本区域只包含一个字符,那么它就不再起作用了。

尝试仅将要转换的相同类型数据的整数放入文本框

如果您想添加双号,那么您可以使用。

Double num = Convert .ToDouble ( TxtAmount.Text); 

如果您的文本框为空,则可以确定您已进行验证或检查相同内容:

if(TxtAmount.Text==""||TxtAmount.Text=string.Empty)
{
    TxtAmount.Text=0;
}
else
{
  int d = Convert .ToInt ( TxtAmount.Text); 
}

答案 3 :(得分:0)

如果您只想忽略负号,那么您可以执行字符串操作,如:

string value = TxtAmount.Text;
if (value.StartsWith("-"))
{
    value = value.Substring(1);
}