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