出于某种原因,我的代码中的一个特定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而不是正确的数字。不知道这里发生了什么。有什么想法吗?
答案 0 :(得分:0)
我认为这里的问题是multiplier
字符串,它可能有一些非数字字符,如unicode'零宽空格'
请问你看看double.TryParse返回的是真还是假?
你也可以发布一个multiplier
的值,编码我们可以检查字符是什么。请发布hexEncoded
代码:
string hexEncoded = string.Join("", multiplier.Select(c => ((int)c).ToString("X2")));