我已经读了一个包含nig数字的文件,其中包括十进制的数字,例如:10.4成一个字符串数组。我想获得一个双打数组。我的方法仅适用于不带小数部分的数字,但适用于十进制的数字会出现以下错误:
mscorlib.dll中发生了'System.FormatException'类型的未处理异常。其他信息:输入字符串的格式不正确。
您是否有一些想法如何修改代码以使其适用于所有正实数?
string[] lines = System.IO.File.ReadAllLines(fd.FileName);
numbers_input = lines.Select(x => double.Parse(x)).ToArray();
您应该考虑到语言环境设置。默认情况下,double.Parse与当前线程语言环境配合使用,该语言环境可能指定的十进制分隔符与文件中使用的十进制分隔符不同。例如,某些文化使用逗号(,),而其他文化使用句点(。)。
如果您的数据文件很好,并且使用句点作为小数点分隔符,则可以使用
lines.Select(x => double.Parse(x, CultureInfo.InvariantCulture)).ToArray();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句