试图将字符串转换为双C#?

时间:2014-04-04 13:50:38

标签: c# visual-studio xaml windows-phone culture

 double test = Convert.ToDouble("39,618840‎");

这给了我一个格式异常,我尝试使用Cultureinfo.invariantculture设置,它也是这样。

3 个答案:

答案 0 :(得分:5)

零后面有一个尾随的隐形字符。删除它。

enter image description here

然后,这有效:

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(",", ".");