为了账号安全,请及时绑定邮箱和手机立即绑定

无法将字符串数组正确转换为双精度数组,返回 0

无法将字符串数组正确转换为双精度数组,返回 0

C#
莫回无 2021-10-23 17:32:23
在上面的代码中,我试图将通过读取文本文件中的所有行生成的字符串数组转换为双数组。但是,当我这样做时,我打印出双数组中的每个数字,它们都打印出说  0    0    0    0在文件中时,实际数字是:  -0.055  -0.034        0.232        0.1756我不明白为什么要这样做,任何帮助将不胜感激。
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

你没有Parse从文件中取值。它应该是这样的:


 double[] test = System.IO.File

   .ReadLines(new_path)

   .Select(line => double.Parse(line)) // <- each line should be parsed into double

   .ToArray();


 foreach (double number in test) {

   Console.WriteLine(number);

 }         


 Console.ReadLine();


查看完整回答
反对 回复 2021-10-23
?
长风秋雁

TA贡献1757条经验 获得超7个赞

这里有一些很好的答案。


double parsedNumber;

for (int i = 0; i < numberArray.Length; i++)

{

    bool numberIsValid = double.TryParse(numberArray[i], out parsedNumber);


    if (numberIsValid)

        test[i] = parsedNumber; 

    else

        Console.WriteLine($"{numberArray[i]} is not a valid double.");

}


查看完整回答
反对 回复 2021-10-23
?
守候你守候我

TA贡献1802条经验 获得超10个赞

您实际上从未向test数组添加任何值。这行代码:


double[] test = new double[numberArray.Length];

只是说创建一个x大小的空白数组。该数组内的值是默认值(默认double值为0)。如果您希望它们在那里,您需要为数组分配值。


将文本文件行转换为双数组的最简单方法是使用一点 Linq:


if(File.Exists(newPath))

{

    double[] test = File.ReadLines(newPath).Select(x => double.Parse(x)).ToArray()

    foreach(double number in test)

    {

        Console.WriteLine(number);

    }         

    Console.ReadLine();

}

但是它的缺点是没有错误处理。


如果你想处理错误,你的代码会稍微长一点,你应该创建一个ParseLines()方法:


double[] test = ParseLines(newPath).ToArray()

foreach(double number in test)

{

    Console.WriteLine(number);

}         

Console.ReadLine();

private static IEnumerable<double> ParseLines(string filePath)

{  

    if(File.Exists(newPath))

    {

        foreach(string line in File.ReadLines(newPath))

        {

            double output;

            if(double.TryParse(line, out output))

            {

                yield return output;

            }

        }

    }

}


查看完整回答
反对 回复 2021-10-23
  • 3 回答
  • 0 关注
  • 227 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信