将字符串转换为双精度,[重复]

Posted

技术标签:

【中文标题】将字符串转换为双精度,[重复]【英文标题】:Convert string to double, [duplicate] 【发布时间】:2017-10-06 09:46:45 【问题描述】:

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

但是,当尝试这样做时:

Vector newVector = new Vector(
(float)Convert.ToDouble(words[1]),
(float)Convert.ToDouble(words[2]));

我收到以下错误:

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

那是因为值使用了“。”但是如果我手动更改数组以使用“,”它可以工作。 我怎样才能最简单地替换所有“。”和 ','。

【问题讨论】:

使用String.Replace 或其他区域设置,其中十进制分隔符为. 为什么要使用float 类型转换? Array.ConvertAll(words.Split(','), Double.Parse); 这会将您的字符串数组转换为双精度数组。事实上,我是从另一个Stack Overflow[1] 问题中得到的。我希望这能解决你的问题。 [1]:***.com/questions/9524682/… 【参考方案1】:

使用

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

【讨论】:

【参考方案2】:

试试这个...

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

【讨论】:

以上是关于将字符串转换为双精度,[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 '%' 将字符串转换为双精度

将字符串转换为双精度的最佳方法

麻烦:将字符串转换为双精度

如何使用 Javascript 将货币字符串转换为双精度?

Android字符串到双重转换[重复]

将字符串转换为双精度的 C++ 错误