将数字字符串数组转换为双精度数组
Converting a string array of numbers to a double array
我有一个由所有数字组成的字符串数组,我需要将它转换为双精度,这样我以后可以用它做一些事情,我需要做这样的事情。
static void Main(string[] args)
{
string[] String = File.ReadAllLines("../Program/Files/Numbers.txt");
double[] Double = String;
}
我试过使用 for 循环逐行转换它,但我试过的所有方法都给我一个错误:
Cannot implicitly convert type 'string' to 'double'
我是 c# 编码的新手,我不知道任何其他方法。
我认为它应该很简单,我希望我不会显得太愚蠢而无法弄清楚。
非常感谢任何人能提供的帮助:)
使用double.Parse()
var myDouble = double.Parse("27.89");
https://msdn.microsoft.com/en-us/library/system.double.parse%28v=vs.110%29.aspx
所有内置的数字类型都有一个解析函数来从字符串转换
使用 Linq 试试这个..
static void Main(string[] args)
{
string[] StringNumbers = File.ReadAllLines("../Program/Files/Numbers.txt");
double[] Double = StringNumbers.ToList().ConvertAll(x=>Convert.ToDouble(x)).ToArray();
}
Convert.ToDouble
:将数字的指定字符串表示形式转换为等效的双精度浮点数。更多信息 here
您需要通过一个循环来单独分配每个条目。假设文件的每一行都是它自己的数据条目,这应该不难做到。否则,您可以搜索 String.Split() 方法来了解如何分解它。示例可能如下所示:
string[] fileLines = File.ReadAllLines("../Program/Files/Numbers.txt");
double[] fileDouble = new double[fileLines.Length];
for(int i=0; i < fileLines.Length ; i++){
Double.TryParse(fileLines[i], out fileDouble[i]);
}
我有一个由所有数字组成的字符串数组,我需要将它转换为双精度,这样我以后可以用它做一些事情,我需要做这样的事情。
static void Main(string[] args)
{
string[] String = File.ReadAllLines("../Program/Files/Numbers.txt");
double[] Double = String;
}
我试过使用 for 循环逐行转换它,但我试过的所有方法都给我一个错误:
Cannot implicitly convert type 'string' to 'double'
我是 c# 编码的新手,我不知道任何其他方法。 我认为它应该很简单,我希望我不会显得太愚蠢而无法弄清楚。
非常感谢任何人能提供的帮助:)
使用double.Parse()
var myDouble = double.Parse("27.89");
https://msdn.microsoft.com/en-us/library/system.double.parse%28v=vs.110%29.aspx
所有内置的数字类型都有一个解析函数来从字符串转换
使用 Linq 试试这个..
static void Main(string[] args)
{
string[] StringNumbers = File.ReadAllLines("../Program/Files/Numbers.txt");
double[] Double = StringNumbers.ToList().ConvertAll(x=>Convert.ToDouble(x)).ToArray();
}
Convert.ToDouble
:将数字的指定字符串表示形式转换为等效的双精度浮点数。更多信息 here
您需要通过一个循环来单独分配每个条目。假设文件的每一行都是它自己的数据条目,这应该不难做到。否则,您可以搜索 String.Split() 方法来了解如何分解它。示例可能如下所示:
string[] fileLines = File.ReadAllLines("../Program/Files/Numbers.txt");
double[] fileDouble = new double[fileLines.Length];
for(int i=0; i < fileLines.Length ; i++){
Double.TryParse(fileLines[i], out fileDouble[i]);
}