翻倍.解析不能保留逗号

本文关键字:保留 不能 翻倍 | 更新日期: 2023-09-27 18:09:33

我正在尝试将字符串转换为双精度,我有这个值:53.095并尝试转换为双精度:

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"));
编辑:

正如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.