我正在玩十进制解析,我遇到了一些我无法通过阅读msdn文档解释的内容: 此代码返回false:
decimal.TryParse(" 1.1", NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out d)
但是这段代码返回true:
decimal.TryParse(" 1.1", out d)
但是从我在msdn上读到的内容来看,NumberStyles.AllowDecimalPoint
只能使用分隔符,那么为什么代码的第一个版本无法解析小数字符串呢?
答案 0 :(得分:5)
您的第一个示例未在AllowLeadingWhite
中包含NumberStyles
。由于你的字符串有空格而且你不允许它,解析失败。
答案 1 :(得分:1)
正如decimal.TryParse(string,decimal)部分解释Remarks的MSDN文档:
使用NumberStyles.Number样式解释参数s。
这是一个标志:
表示使用AllowLeadingWhite,AllowTrailingWhite,AllowLeadingSign,AllowTrailingSign,AllowDecimalPoint和AllowThousands样式。这是一种复合数字样式。
source实际上更容易阅读:
Number = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |
AllowDecimalPoint | AllowThousands,