double test = Convert.ToDouble("39,618840");
这给了我一个格式异常,我尝试使用Cultureinfo.invariantculture设置,它也是这样。
答案 0 :(得分:5)
零后面有一个尾随的隐形字符。删除它。
然后,这有效:
var culture = CultureInfo.GetCultureInfo("FR-fr");
var qty = Convert.ToDouble("39,618840", culture);
答案 1 :(得分:1)
该字符串中有一些无效字符。
查看十六进制字符串,我们看到以下内容:
"39,618840" --> 0x22, 0x33, 0x39, 0x2c, 0x36, 0x31, 0x38, 0x34, 0x30, 0xe2, 0x80, 0x8e, 0x22
角色实际上看起来像是:
"39,618840â€Ẑ"
答案 2 :(得分:0)
if (myString.Contains(","))
myString = myString.Replace(",", "");
double mydouble = Double.Parse(myString);
使用上面的方法将字符串解析为double,你的问题是逗号。如果您打算将逗号作为小数点,可以进行以下修改:
myString = myString.Replace(",", ".");