decimal decimalVal;
Decimal.TryParse("123-", out decimalVal);
Console.WriteLine(decimalVal); // -123
「123-」文字列がこのように解析されるのはなぜですか?
decimal decimalVal;
Decimal.TryParse("123-", out decimalVal);
Console.WriteLine(decimalVal); // -123
「123-」文字列がこのように解析されるのはなぜですか?
Decimal.TryParseメソッドは、デフォルトでNumberStyles.Numberを使用して入力を解析します。NumberStyles.NumberにはNumberStyles.AllowTrailingSignが含まれます。
Decimal.TryParse メソッド (文字列、10 進数)
[...]
パラメータ s は NumberStyles.Number スタイルを使用して解釈されます。
[...]
Number AllowLeadingWhite、AllowTrailingWhite、AllowLeadingSign、AllowTrailingSign、AllowDecimalPoint、および AllowThousands スタイルが使用されることを示します。これは合成数スタイルです。
AllowTrailingSign 数値文字列の末尾に符号を付けることができることを示します。有効な末尾符号文字は、NumberFormatInfo.PositiveSign および NumberFormatInfo.NegativeSign プロパティによって決定されます。
NumberStyles.Number 列挙子がデフォルトで使用されます。
AllowLeadingWhite、AllowTrailingWhite、AllowLeadingSign、AllowTrailingSign、AllowDecimalPoint、および AllowThousands スタイルが使用されることを示します。これは合成数スタイルです
http://msdn.microsoft.com/en-us/library/system.globalization.numberstyles.aspx
これは、 で受け入れられる形式ですDecimal.Parse
。メソッドのstyle
オプションParse
により、先頭および末尾の符号を使用できます。