为什么在转换从网页检索的数字时,Decimal.TryParse会返回false?

时间:2016-12-01 15:30:43

标签: c# decimal html-agility-pack

我正在使用HtmlAgilityPack从各种网站检索信息,如下所示。调试中为fhfaRate = "3.62",但isNumfalsemyRate = 0.0。 我在"3.62"中键入TryParse,这样可以正常工作,但如果我从fhfaRate复制值(在调试中)并粘贴到TryParse,则会返回false 1}}尽管看起来像这样 - "3.62"

就像"3.62" <> "3.62"一样,我很难过。

doc = web.Load(fhfaUrl);
string fhfaRate = doc.DocumentNode.SelectSingleNode("//td[@class='tg-s6z2  ms-rteTableEvenCol-4']/p").InnerText;
decimal myRate;
bool isNum = Decimal.TryParse(fhfaRate, NumberStyles.Any, CultureInfo.InvariantCulture, out myRate);

1 个答案:

答案 0 :(得分:1)

感谢那些帮助过的人。事实证明,字符串的CharArray附加了零宽度空间(8203)。我在前4个字符中使用了一个子字符串,瞧,我有一个十进制值。

在我这样做后我开始思考 - 如果值变为2位数就会破坏,所以我环顾四周找到了它。

InnerText.Replace((char)0x200B, ' ');