c# - 为什么 decimal.TryParse 成功解析了类似 12,2,2,2 的东西

标签 c# parsing decimal

如果我执行以下操作:

string teststring = "12,2,2,2";
decimal testdecimal;
decimal.TryParse(teststring, out testdecimal)

这有效,testdecimal 最终为 12222。

这不应该在合理/逻辑上解析失败吗?我很惊讶地看到它起作用了,并且很好奇它背后的逻辑是什么允许这样做。

最佳答案

默认情况下,TryParse() 允许组分隔符,在您所在的国家/地区为 ,

为防止这种情况,传递一个不包含 NumberStyles.AllowThousandsNumberStyles

默认是:

Number   = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign | AllowTrailingSign |
           AllowDecimalPoint | AllowThousands,

Source

关于c# - 为什么 decimal.TryParse 成功解析了类似 12,2,2,2 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899346/

相关文章:

c# - 位移位 c# 这是怎么回事?

c# - 可以在 asp.net 4.6 中进行 Roslyn 自动编译吗?

c - 阅读文档并在该文档中查找特定单词

parsing - 如何使用 Bash 脚本解析 EXIF 时间戳

c - 在 C 中声明一个只有 2 个小数点的变量

c# - '/' 应用程序中的服务器错误

c# - Html.ActionLink<> 智能感知问题

java - 二进制字符串到整数转换器中的错误

javascript做减法的小数点太多

c++ - unsigned int有效位数