Double.TryParse没有返回正确的结果

时间:2017-01-30 21:33:50

标签: c# visual-studio double

出于某种原因,我的代码中的一个特定double.TryParse()返回0而不是预期的结果。

double parsedMultiplier;
double.TryParse(multiplier, NumberStyles.Number, CultureInfo.InvariantCulture, out parsedMultiplier);

multiplier设置在此代码块之上,是一个字符串。我通过了它" 5"和" 86" (作为字符串)并返回0.我将double.Parse(multiplier)放在Visual Studio的Watch窗口中,它正确地解析了数字。当我修改代码时,如下所示:

var parsedMultiplier = double.Parse(multiplier);

它再次返回0而不是正确的数字。不知道这里发生了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是multiplier字符串,它可能有一些非数字字符,如unicode'零宽空格' 请问你看看double.TryParse返回的是真还是假? 你也可以发布一个multiplier的值,编码我们可以检查字符是什么。请发布hexEncoded

代码:

string hexEncoded = string.Join("", multiplier.Select(c => ((int)c).ToString("X2")));