如果我执行以下操作:
string teststring = "12,2,2,2";
decimal testdecimal;
decimal.TryParse(teststring, out testdecimal)
这有效,testdecimal 最终为 12222。
这不应该在合理/逻辑上解析失败吗?我很惊讶地看到它起作用了,并且很好奇它背后的逻辑是什么允许这样做。
最佳答案
默认情况下,TryParse()
允许组分隔符,在您所在的国家/地区为 ,
。
为防止这种情况,传递一个不包含 NumberStyles.AllowThousands
的 NumberStyles
。
默认是:
Number = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |
AllowDecimalPoint | AllowThousands,
关于c# - 为什么 decimal.TryParse 成功解析了类似 12,2,2,2 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899346/