私はHtmlAgilityPackを使用して、以下のようにさまざまなWebサイトから情報を取得しています。 fhfaRate = "3.62"
はデバッグ中ですが、isNum
はfalse
とmyRate = 0.0
です。 TryParse
に"3.62"
と入力しても問題ありませんが、(デバッグ時)の値をコピーしてTryParse
に貼り付けた場合、このように見えるにもかかわらずfalse
が返されます。Webページから取得した数値を変換するときにDecimal.TryParseがfalseを返すのはなぜですか?
"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);
ブレークポイントのヒントを設定するには、ウォッチウィンドウで 'fhfaRate.ToCharArray()'を見てください。そこには目に見えない文字があるかもしれません。 'System.Globalization.CultureInfo.CurrentCulture'の値も調べてください。 –
本当に "3.62"の文字が入っているのですか? –
また、デバッグ時に 'string.Join(" "、fhfaRate.Select(c =>(int)c).ToString(" x4 "))デバッグ時に文字列をデコードしようとすると、結果は" 0033 002e 0036 0032 " ( '' 3.62 "'の場合) –