繁体   English   中英

将整个字符串数组转换为双数组会引发输入格式异常,但转换单个元素可以正常工作

[英]Converting entire string array to double array throws input format exception, but converting single elements works fine

我正在尝试将字符串数组(我从 .txt 文件填充)转换为 C# 中的双数组。

这是我尝试过的,使用 for 循环,我在其他解决方案中看到过。

            string[] StringArr = File.ReadAllLines("256.txt");

            double[] DoubleArr = new double[StringArr.Length];

            for(int i = 0; i < StringArr.Length; i++)
            {
                DoubleArr[i] = Convert.ToDouble(StringArr[i]);
            }

这引发了异常“System.FormatException:'输入字符串的格式不正确。” 为了

DoubleArr[i] = Convert.ToDouble(StringArr[i]);

我以为文本文件中的数据格式有问题,但是当我尝试

DoubleArr[0] = Convert.ToDouble(StringArr[0]);
Console.WriteLine(DoubleArr[0]);

这工作没有抛出异常,并打印了正确的数字。

我认为我一定对 for 循环做错了什么?

如果没有看到您的数据,您可能会遇到Incorrect decimal separator的问题

不同的文化使用不同的小数点分隔符(例如,.

如果更换 . 有了,一切都会好的

或者你使用文化:

double.Parse("12.345", System.Globalization.CultureInfo.InvariantCulture)

此外,您可能有一个空值,这是一个不正确的双精度值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM