C# Double.Parse不能保留逗号

C# Double.Parse不能保留逗号,c#,C#,我正在尝试将字符串转换为double,我有一个值:53.095,并尝试将其转换为double作为: string doub = "53.095"; var cv = Convert.ToDouble(doub); 我得到:53095。为什么我不懂逗号?我遗漏了什么?我想这是因为不同的国家处理逗号的方式不同。例如,我的国家使用,。因此,您必须了解字符串的格式 string doub = "53.095"; var cv = double.Parse(doub, new CultureInfo("

我正在尝试将字符串转换为double,我有一个值:
53.095
,并尝试将其转换为double作为:

string doub = "53.095";
var cv = Convert.ToDouble(doub);

我得到:
53095
。为什么我不懂逗号?我遗漏了什么?

我想这是因为不同的国家处理逗号的方式不同。例如,我的国家使用
。因此,您必须了解字符串的格式

string doub = "53.095";
var cv = double.Parse(doub, new CultureInfo("en-GB"));
对于另一个本地化,这将起作用

string doub = "53,095"; // note ,
var cv = double.Parse(doub, new CultureInfo("sv-SE"));
编辑:

如前所述,只要使用英语样式进行格式化,就可以使用

[…]它与英语相关,但与任何语言无关 国家/地区


也许这个问题可以帮助你:我建议使用
CultureInfo.InvariantCulture
而不是新的GB信息-en@king_nak是的,这确实是一种选择。但是,根据执行代码的服务器的不同,它可能不是您想要的@smoksnes根据,
InvariantCulture
与英语相关。如果你知道你的输入格式是这样的,那就省去了。我想你指的是
“en GB”
(英国英语)和
“sv SE”
(瑞典瑞典语)。编辑:
“GB en”
变成未知语言环境(GB en)。@king_-nak,我站出来更正。我已经编辑了我的答案。
string doub = "53.095";
string doub2 = "53,095"; 
var cv1 = double.Parse(doub, CultureInfo.InvariantCulture); // Works
var cv2 = double.Parse(doub2, CultureInfo.InvariantCulture); // Does not work.