C# 将字符串转换为双精度,

C# 将字符串转换为双精度,,c#,C#,我有一个包含4个元素的字符串数组。看起来像这样 然而,当尝试这样做时: Vector newVector = new Vector( (float)Convert.ToDouble(words[1]), (float)Convert.ToDouble(words[2])); 我得到以下错误: '输入字符串的格式不正确。' 这是因为该值使用了“.”,但如果我手动将数组更改为使用“.”,它会工作。 如何将所有“.”替换为“,” 使用 //(float)Convert.ToDouble(words

我有一个包含4个元素的字符串数组。看起来像这样

然而,当尝试这样做时:

Vector newVector = new Vector(
(float)Convert.ToDouble(words[1]),
(float)Convert.ToDouble(words[2]));
我得到以下错误:

'输入字符串的格式不正确。'

这是因为该值使用了“.”,但如果我手动将数组更改为使用“.”,它会工作。 如何将所有“.”替换为“,”

使用

//(float)Convert.ToDouble(words[1]),
  (float)Convert.ToDouble(words[1], CultureInfo.InvariantCulture),
使用

试试这个

Vector newVector = new Vector(
(float)Convert.ToDouble(words[1], CultureInfo.GetCultureInfo("en-US").NumberFormat),
(float)Convert.ToDouble(words[2], CultureInfo.GetCultureInfo("en-US").NumberFormat));
试试这个

Vector newVector = new Vector(
(float)Convert.ToDouble(words[1], CultureInfo.GetCultureInfo("en-US").NumberFormat),
(float)Convert.ToDouble(words[2], CultureInfo.GetCultureInfo("en-US").NumberFormat));

使用
String。替换
或十进制分隔符为
的其他区域设置。为什么要使用
float
typecasting?
Array.ConvertAll(words.Split(',')、Double.Parse)这将把字符串数组转换为双数组。事实上,我是从另一个问题中得出这个结论的。我希望这能解决你的问题。[1] :使用
String。替换
或十进制分隔符为
的其他区域设置。为什么要使用
float
类型转换?
Array.ConvertAll(words.Split(',),Double.Parse)这将把字符串数组转换为双数组。事实上,我是从另一个问题中得出这个结论的。我希望这能解决你的问题。[1]: