C# 如何使用StreamReader读取双精度值?

C# 如何使用StreamReader读取双精度值?,c#,C#,我正在尝试将txt文件读入数组。我写的所有东西都是作为一个整数来读的,但是我误读了信息,并且需要能够解释小数。如何更改下面的代码以允许小数 我是C#的新手,但我还没弄明白这一点。如果我只是将int切换到double,就会出现错误“无法将int类型隐式转换为double” 我只需要把数字放到数组列表中。上面的代码用于提取整数,但当列表中有整数表示“输入字符串格式不正确”时,显然会失败 更新:使用上述代码,小数不再出错。我希望自己能弄清楚的第二部分是从数组中调用信息 下面的方法以前是有效的,但在切换

我正在尝试将txt文件读入数组。我写的所有东西都是作为一个整数来读的,但是我误读了信息,并且需要能够解释小数。如何更改下面的代码以允许小数

我是C#的新手,但我还没弄明白这一点。如果我只是将int切换到double,就会出现错误“无法将int类型隐式转换为double”

我只需要把数字放到数组列表中。上面的代码用于提取整数,但当列表中有整数表示“输入字符串格式不正确”时,显然会失败

更新:使用上述代码,小数不再出错。我希望自己能弄清楚的第二部分是从数组中调用信息

下面的方法以前是有效的,但在切换到允许小数后,它会出错。我试着在下面将int转换为decimal,但我不确定我做错了什么

private int average(int[] numList)
        {
            int avg;
            int total = 0;
            for (int i = 0; i < numList.Length; i++)
            {
                total += numList[i];
            }
            avg = total / numList.Length;
            return avg;
        }
private int average(int[]numList)
{
国际平均值;
int-total=0;
for(int i=0;i
使用
十进制。解析

    var x = "1";
    var y = "1.1";
    Console.WriteLine(decimal.Parse(x));
    Console.WriteLine(decimal.Parse(y));
这里有一个dotnetfiddle展示了如何做到这一点:

C#是类型安全的编程语言

您可以使用ArrayList类,因为它可以存储任何对象,所以它不是类型安全的,这意味着您可以执行以下操作:

 var integers = new  ArrayList();
 while (ifile.EndOfStream == false)
 {
 str = ifile.ReadLine();
 integers.Add(decimal.Parse(str));
 }

并按如下步骤进行。

Change
int.Parse(str)
decimal.Parse(str)
如果是钱或
double.Parse(str)如果不是钱。确保将
列表
更改为相同的类型。首先,如果
列表
只是一个
数组列表
,则应将其更改为通用的
列表
,并使
T
成为测试文件中的适当类型代表。整数值也可以用小数来表示,所以在
列表中的数据类型对您来说重要吗?如果没有,您可以将
列表
更改为
列表
,然后使用
decimal.Parse()
而不是
int.Parse()
。如果要混合数据类型,必须使用
列表
,然后使用一些智能解析逻辑(首先尝试
int
,如果失败,尝试
decimal
,等等)。现在很难提供有效的解决方案,因为您的代码中有一些部分我们看不到定义(例如
List
)。有了更好的答案,我们可以提供更好的答案。第二部分,我希望我能弄明白,一旦这是固定的,但我想不是。用其他信息更新帖子。不管怎么说,我知道了。谢谢你的建议。如果你想发布答案,我会将其标记为已接受。
 var integers = new  ArrayList();
 while (ifile.EndOfStream == false)
 {
 str = ifile.ReadLine();
 integers.Add(decimal.Parse(str));
 }