关于我在C#中工作的程序,我只是一个快速(我认为)的问题.我有一个包含很长数字列表的文本文件,如下所示:
41.673993158 0.000000000 258.436256
41.673992499 -0.000001364 258.462068
41.673991841 -0.000002700 258.487880
Run Code Online (Sandbox Code Playgroud)
我需要创建一个数组,将每个数字分别包含为double(或float).即
Array[0] = 41.673993158
Array[1] = 0.000000000 ...etc.]
Run Code Online (Sandbox Code Playgroud)
现在,我在数组中有数字,但它们都是字符串.我有以下代码:
string text = System.IO.File.ReadAllText("/Applications/Unity/Projects/Underwater/SampleFile.txt");
if (text != null)
{
string[] strings = text.Split (' ');
System.Console.WriteLine("Contents of SampleFile = ");
for (int i = 0; i < strings.Length; i++)
{
Console.WriteLine (strings[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码非常完美.它在控制台中的一个单独的行上输出每个数字,这使我相信每个数字在数组中都有它自己的位置.但是,它们仍然是字符串,所以当我尝试使用此代码将它们转换为双精度时:
double[] nums = new double[strings.Length];
for (int i = 0; i < strings.Length; i++)
{
nums[i] = Convert.ToDouble(strings[i]);
}
Run Code Online (Sandbox Code Playgroud)
我被抛出异常错误,无法弄清楚原因.这是错误消息:
抛出了System.FormatException.
未知的字符
详细信息:double.Parse(s ="258.436256\r \n \n41.673992499",provider …