为什么' Int32.TryParse("1.00") '失败?

本文关键字:quot 失败 Int32 TryParse 为什么 | 更新日期: 2023-09-27 17:50:40

我正在做一个项目-我必须从Excel单元格中读取值并进行某种计算。下面是我尝试过的代码,str表示来自具有引号的Excel的值。-我想将其转换为Int以供进一步计算。

问题是我无法将"str"值转换为整数

    String str ="1.00";
    str = str.Replace(@"""", @"'""");
    str = str.Replace("'"", "'''"");
    if (Int32.TryParse(str, out i))
    {
        Console.WriteLine(i);
    }

为什么' Int32.TryParse("1.00") '失败?

正如其他人提到的,您试图将1.00解析为Integer,而1.00实际上是Double数据类型而不是Integer。如果您想最终使用整数,我建议先转换为双精度类型,然后再转换为整数,如下所示:

if (Double.TryParse(str, out i))
{
    Console.WriteLine(Convert.ToInt32(i));
}

要从字符串值中删除引号,可以使用Substring方法,因为每个值的开头和结尾都有引号。该方法使用startIndex值和要裁剪出的子字符串的length。我们可以从第二个字符开始,直到str.Length - 1,如下所示:

String str ="1.00";
str = str.Substring(0,(str.Length)-1); // new value of str will be 1.00