c# - 将整个字符串数组转换为双数组会引发输入格式异常,但转换单个元素可以正常工作
问题描述
我正在尝试将字符串数组(我从 .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)
此外,您可能有一个不正确的空值
推荐阅读
- javascript - VSCode javascript/typescript 建议操作列表
- flutter - com.google.gson.stream.MalformedJsonException:第 11 行第 10 列路径 $.client[0].client_info 应为“:”
- r - 在选定列中按行计算非 NA 观测值
- python - 如何将序列列添加到 Dask 数据框?
- excel - Excel VBA - 将选定的列表框项目移动到范围
- c - 如何正确地将结构传递给函数
- javascript - 赛普拉斯 - 如何在 iframe 中的元素之间切换
- javascript - 模块导出对象搜索和获取项目 node.js
- python - 蛮力产生可能的排列
- c# - C#比较2天,分钟没有正确比较