C# 将十进制数从字符串转换为双精度

C# 将十进制数从字符串转换为双精度,c#,string,double,C#,String,Double,我已将一个包含小数的文件(例如:10.4)读入字符串数组。我想得到一个双倍数组。我的方法仅适用于不带小数部分的数字,但对于小数部分,会出现以下错误: 中发生类型为“System.FormatException”的未处理异常 mscorlib.dll其他信息:输入字符串不在 格式正确 你会有一些想法如何修改代码以适用于所有正实数吗 string[] lines = System.IO.File.ReadAllLines(fd.FileName); numbers_input = lines.Sel

我已将一个包含小数的文件(例如:10.4)读入字符串数组。我想得到一个双倍数组。我的方法仅适用于不带小数部分的数字,但对于小数部分,会出现以下错误:

中发生类型为“System.FormatException”的未处理异常 mscorlib.dll其他信息:输入字符串不在 格式正确

你会有一些想法如何修改代码以适用于所有正实数吗

string[] lines = System.IO.File.ReadAllLines(fd.FileName);
numbers_input = lines.Select(x => double.Parse(x)).ToArray();

这很可能是区域性问题。请使用
InvariantCulture
进行解析。您的数字有点(.)有十进制运算符,它不同于您当前区域性的十进制分隔符

numbers_input = lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture))
                     .ToArray();

这很可能是区域性问题。请使用
InvariantCulture
进行解析。您的数字有点(.)有十进制运算符,它不同于您当前区域性的十进制分隔符

numbers_input = lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture))
                     .ToArray();

这很可能是区域性问题。请使用
InvariantCulture
进行解析。您的数字有点(.)有十进制运算符,它不同于您当前区域性的十进制分隔符

numbers_input = lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture))
                     .ToArray();

这很可能是区域性问题。请使用
InvariantCulture
进行解析。您的数字有点(.)有十进制运算符,它不同于您当前区域性的十进制分隔符

numbers_input = lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture))
                     .ToArray();

您应该考虑区域设置。默认情况下,double.Parse使用当前线程区域设置,该区域设置可能指定了与文件中使用的十进制分隔符不同的十进制分隔符。例如,某些区域性使用逗号(,),而其他区域性使用句点(.)

如果数据文件没有问题,并且使用句点作为小数分隔符,则可以使用

lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture)).ToArray();

您应该考虑区域设置。默认情况下,double.Parse使用当前线程区域设置,该区域设置可能指定了与文件中使用的十进制分隔符不同的十进制分隔符。例如,某些区域性使用逗号(,),而其他区域性使用句点(.)

如果数据文件没有问题,并且使用句点作为小数分隔符,则可以使用

lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture)).ToArray();

您应该考虑区域设置。默认情况下,double.Parse使用当前线程区域设置,该区域设置可能指定了与文件中使用的十进制分隔符不同的十进制分隔符。例如,某些区域性使用逗号(,),而其他区域性使用句点(.)

如果数据文件没有问题,并且使用句点作为小数分隔符,则可以使用

lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture)).ToArray();

您应该考虑区域设置。默认情况下,double.Parse使用当前线程区域设置,该区域设置可能指定了与文件中使用的十进制分隔符不同的十进制分隔符。例如,某些区域性使用逗号(,),而其他区域性使用句点(.)

如果数据文件没有问题,并且使用句点作为小数分隔符,则可以使用

lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture)).ToArray();

确保它们在数组中不是空字符串,并修剪每一行。其中(y=>y.trim().Length>0)。选择(x=>double.Parse(x.trim()).ToArray();确保它们在数组中不是空字符串,并修剪每一行。其中(y=>y.trim().Length>0)。选择(x=>double.Parse(x.trim()).ToArray();确保它们在数组中不是空字符串,并修剪每一行。其中(y=>y.trim().Length>0)。选择(x=>double.Parse(x.trim()).ToArray();确保它们在数组中不是空字符串,并修剪每一行。其中(y=>y.trim().Length>0)。选择(x=>double.Parse(x.trim()).ToArray();