当解析为小数时,您可能非常想解析“ 23.393%”之类的数字,但是如果不手动剥离百分号(%
),这将不起作用。我希望这行返回true:
Decimal.TryParse("31.7%",System.Globalization.NumberStyles.Any, null, out var dec)
System.Globalization.NumberStyles.Any的文档似乎表明它应该允许任何类型的(十进制)数字格式。是否有未包含百分比的原因?
(注意:我使用的是C#,但是底层的TryParse函数也应该使用VB.NET和其他.NET语言,因此此问题也适用于它们)
答案 0 :(得分:2)
我认为您误读了该文档。 Any
的注释是这样的:
使用除AllowHexSpecifier之外的所有样式。这是一种复合数字样式。
这并不意味着一切正常。它仅表示NumberStyles
枚举工作中的其他任何 specific 条目(当然,AllowHexSpecifier
除外)。这些数字样式中的 无 与百分号或此处的格式有关。最接近的是AllowTrailingSign
,但是阅读该样式的注释后,我们会看到:
有效的尾随符号由PositiveSign和NegativeSign属性确定。
没有百分比选项。看来您将不得不自己管理这种格式。