小数.解析字符串,后面加一个负号
本文关键字:一个 字符串 小数 | 更新日期: 2023-09-27 18:18:48
decimal decimalVal;
Decimal.TryParse("123-", out decimalVal);
Console.WriteLine(decimalVal); // -123
为什么"123-"字符串这样解析?
小数。TryParse方法用NumberStyles解析输入。默认为号码。NumberStyles。Number包括NumberStyles.AllowTrailingSign.
小数。TryParse (String, Decimal)
[…]
参数s使用NumberStyles进行解释。许多风格。
[…]
表示使用AllowLeadingWhite、AllowTrailingWhite、AllowLeadingSign、AllowTrailingSign、AllowDecimalPoint和allowthousand样式。这是一个合数样式。
AllowTrailingSign 指示数字字符串可以有尾随符号。有效的尾随符号字符由NumberFormatInfo决定。PositiveSign和NumberFormatInfo。版本属性。
默认使用数字枚举器:
表示使用AllowLeadingWhite、AllowTrailingWhite、AllowLeadingSign、AllowTrailingSign、AllowDecimalPoint和allowthousand样式。这是一个合数样式
http://msdn.microsoft.com/en-us/library/system.globalization.numberstyles.aspxNumberNegativePattern仅用于字符串输出,但在解析时被忽略。对于解析,使用另一个参数:NumberStyles
.
Convert.ChangeType
路由到decimal.Parse
,所以如果你直接使用正确的过载,你可以指定不允许尾随符号:
var result = decimal.Parse("123-", NumberStyles.Number & ~NumberStyles.AllowTrailingSign); // will throw an exception
这是Decimal.Parse
可以接受的格式。Parse
方法的style
选项允许开头和结尾符号。
阅读更多:http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx