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

Bud*_*ril 0 c# parsing decimal

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

decimal.TryParse(" 1.1", NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out d)
Run Code Online (Sandbox Code Playgroud)

但是这段代码返回true:

decimal.TryParse(" 1.1", out d)
Run Code Online (Sandbox Code Playgroud)

但是从我在msdn上看到的,NumberStyles.AllowDecimalPoint只能用分隔符,所以为什么第一个版本的代码无法解析十进制字符串?

vcs*_*nes 5

你的第一个例子不包含AllowLeadingWhiteNumberStyles.由于您的字符串具有空格而您不允许它,因此解析失败.

  • @ rory.ap的默认样式是[NumberStyles.Number](https://referencesource.microsoft.com/#mscorlib/system/globalization/numberstyles.cs,56)这是非常宽松的 (3认同)