c#:使用不同的样式解析小数

时间:2018-02-21 16:02:06

标签: c# parsing decimal

我正在玩十进制解析,我遇到了一些我无法通过阅读msdn文档解释的内容: 此代码返回false:

decimal.TryParse(" 1.1", NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out d)

但是这段代码返回true:

decimal.TryParse(" 1.1", out d)

但是从我在msdn上读到的内容来看,NumberStyles.AllowDecimalPoint只能使用分隔符,那么为什么代码的第一个版本无法解析小数字符串呢?

2 个答案:

答案 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,