C# 转换为Int32时出现格式异常

C# 转换为Int32时出现格式异常,c#,C#,当我试图将一个值转换为Int32时,我得到一个错误格式异常,这意味着该值的格式不正确。但我认为我正在以正确的格式转换值。尝试使用Int32.TryParse()您可以在上找到文档,在以下情况下,您将获得FormatException: Convert.ToInt32("foo"); Convert.ToInt32(5.5); 因为 格式异常 值不由可选符号后跟数字序列(0到9)组成 在此处共享您的代码,您可能会错过一些内容也许提示是“我认为我正在以正确的格式转换值” 您确

当我试图将一个值转换为Int32时,我得到一个错误格式异常,这意味着该值的格式不正确。但我认为我正在以正确的格式转换值。

尝试使用
Int32.TryParse()
您可以在上找到文档,在以下情况下,您将获得
FormatException

Convert.ToInt32("foo");
Convert.ToInt32(5.5);
因为

格式异常

值不由可选符号后跟数字序列(0到9)组成

在此处共享您的代码,您可能会错过一些内容

也许提示是“我认为我正在以正确的格式转换值”

您确定您的号码是根据您当前的文化设置格式的吗

如果不是,则为Int32.TryParse(字符串、数字样式、IFormatProvider、Int32%) 您应该使用的[此处详细信息][1]


[1] :方法(String、NumberStyles、IFormatProvider、Int32%)

通过使用
GetType()
始终可以检查传递给这些函数的值的类型


我陷入这个问题的原因是将动态生成的stringyfied十进制值转换为int。使用
GetType()
计算出值的类型,并首先将其转换为double,然后使用int解决了问题。

您要转换什么值?您能为som提供更多信息或代码片段吗?是的,我们需要查看您试图转换的值。这很有趣,因为convert.ToInt32(“1.00”)也会因格式异常而失败,即使它可以转换为有效的int,但相反,类似convert.ToInt32(convert.ToDecimal(“1.00”)的东西也可以。
string str = "123";
int i = 0;
if (int.TryParse(str, out i))
{
    //do your logic here
}