【问题标题】:Convert string with commas and dots to double将带逗号和点的字符串转换为双精度
【发布时间】:2018-04-11 20:17:29
【问题描述】:

服务器返回格式为“123.123”的字符串。我需要将其转换为 Double。但在某些文化中,double 格式为“123,123”。 (差异在点和逗号中。)

解决此问题的最佳方法是什么?最后,我希望看到这段代码正常工作:

var s1 = "123.123";
var s2 = "123,123";

var d1 = Convert.ToDouble(s1);
var d2 = Convert.ToDouble(s2);

if(d1 == d2)
{
    //Problem is solved
}

【问题讨论】:

  • 我知道了,我应该使用哪个提供商? CultureInfo 对我没有帮助
  • 我链接的 MSDN 文章显示了如何设置数字格式信息,底部有一个完整的示例。

标签: c# string type-conversion double


【解决方案1】:

var result = Convert.ToDouble("23.45", (CultureInfo.InvariantCulture)) 在不同的语言设置中为我工作

【讨论】:

  • 它不适用于逗号作为小数分隔符。 InvariantCulture always 使用点作为小数分隔符,因此它会以这个数字 (23,45) 失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
相关资源
最近更新 更多