TryParseが正常に動作するのに問題があります。私はほぼ確実な値のリストを持っています(彼らはシステムの別のコンポーネントから来ています)が、適切なエラー処理が行われていることを確認したいと思います。ここでTryParseが負の数で失敗しています
は、私の値の例のリストです:
private decimal CalculateValue(IEnumerable<XElement> summaryValues)
{
decimal totalValue = 0;
foreach (XElement xElement in summaryValues)
{
decimal successful;
Decimal.TryParse(xElement.Value, out successful);
if (successful > 0)
totalValue += Decimal.Parse(xElement.Value);
}
return totalValue;
}
変数 '成功':
20.00
20.00
-150.00
そして、ここでは、私はもともと書いた方法があります-150.00でfalseを返していたので、NumberStylesを追加しました:
private decimal CalculateValue(IEnumerable<XElement> summaryValues)
{
decimal totalValue = 0;
foreach (XElement xElement in summaryValues)
{
decimal successful;
Decimal.TryParse(xElement.Value, NumberStyles.AllowLeadingSign, null, out successful);
if (successful > 0)
totalValue += Decimal.Parse(xElement.Value, NumberStyles.AllowLeadingSign);
}
return totalValue;
}
しかし、ここにNumberStylesがあるので、数値は解析されません! IFormatProviderがnullに設定されていることは、私たちのシステム内にあるので、気分がいいです。誰かが私が間違っているかもしれないものを見ていますか?
あなたは二回、それを解析しているのはなぜ? – SLaks