Double.Parse无法保留逗号

时间:2016-09-30 10:16:00

标签: c#

我尝试将字符串转换为double,我将此值:53.095并尝试将其转换为double:

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

我得到:53095。为什么我没有得到逗号?我错过了什么?

1 个答案:

答案 0 :(得分:9)

我想这是因为不同的国家/地区处理逗号的方式不同。例如,我的国家/地区使用,。所以你必须知道如何格式化字符串。

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"));

修改

提到king_nak,只要您使用英文格式进行格式化,就可以使用CultureInfo.InvariantCulture

  

[...]它与英语有关,但与任何英语无关   国家/地区。

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.