问题 小数。解析字符串,后缀为减号


decimal decimalVal;
Decimal.TryParse("123-", out decimalVal);
Console.WriteLine(decimalVal); // -123

为什么“123-”字符串以这种方式解析?


1012
2018-06-17 12:51


起源



答案:


Decimal.TryParse方法 解析输入 NumberStyles.Number 默认。 NumberStyles.Number 包括 NumberStyles.AllowTrailingSign

Decimal.TryParse方法(String,Decimal)

[...]
  使用NumberStyles.Number样式解释参数s。
  [...]

     指示使用AllowLeadingWhite,AllowTrailingWhite,AllowLeadingSign,AllowTrailingSign,AllowDecimalPoint和AllowThousands样式。这是一种复合数字样式。

AllowTrailingSign    表示数字字符串可以有尾随符号。有效的尾随符号字符由NumberFormatInfo.PositiveSign和NumberFormatInfo.NegativeSign属性确定。


11
2018-06-17 12:57



谢谢你的解释! - rpeshkov


答案:


Decimal.TryParse方法 解析输入 NumberStyles.Number 默认。 NumberStyles.Number 包括 NumberStyles.AllowTrailingSign

Decimal.TryParse方法(String,Decimal)

[...]
  使用NumberStyles.Number样式解释参数s。
  [...]

     指示使用AllowLeadingWhite,AllowTrailingWhite,AllowLeadingSign,AllowTrailingSign,AllowDecimalPoint和AllowThousands样式。这是一种复合数字样式。

AllowTrailingSign    表示数字字符串可以有尾随符号。有效的尾随符号字符由NumberFormatInfo.PositiveSign和NumberFormatInfo.NegativeSign属性确定。


11
2018-06-17 12:57



谢谢你的解释! - rpeshkov


默认情况下使用NumberStyles.Number枚举器:

指示使用AllowLeadingWhite,AllowTrailingWhite,AllowLeadingSign,AllowTrailingSign,AllowDecimalPoint和AllowThousands样式。这是一种复合数字样式

http://msdn.microsoft.com/en-us/library/system.globalization.numberstyles.aspx


1
2018-06-17 13:01





这是一种可接受的格式 Decimal.Parse。该 style 选项 Parse 方法允许前导和尾随标志。

阅读更多: http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx


0
2018-06-17 12:56