- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在调用以下两行。第二行崩溃。:
var a = long.Parse("2,147,483,648", NumberStyles.AllowThousands);
var b = long.Parse("-2,147,483,648", NumberStyles.AllowThousands);
但是,如果我将值修改为不包含“,”字符并删除 NumberStyles 枚举,它就会起作用。例如
var a = long.Parse("2147483648");
var b = long.Parse("-2147483648");
我做错了什么吗?这是一个已知的问题?是否有不涉及骇人听闻的字符串操作的可接受的解决方法?
编辑 我应该提到异常是 System.FormatException
,“输入字符串的格式不正确。”
最佳答案
对于第二个示例,您还需要使用 AllowLeadingSign
,因为您使用了 NegativeSign
在你的字符串中。
var b = long.Parse("-2,147,483,648",
NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign);
当您使用 long.Parse(string)
overload 时,此方法使用 NumberStyles.Integer
复合样式,已经包含 AllowLeadingSign
本身。
来自 reference source ;
Integer = AllowLeadingWhite | AllowTrailingWhite | AllowLeadingSign,
关于c# - 为什么 NumberStyles.AllowThousands 在传递负数时会导致异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31018133/
我有一个具有整数属性的模型。当使用 23443 提交模型时,模型绑定(bind)器运行良好并且该值在操作中可用。但是,如果提交的模型带有千位分隔符,如 23,443,则不会解析该值且该属性为零。但我发
我有一个 NSTextField,我已使用以下代码设置: func tableView(tableView: NSTableView, viewForTableColumn tableColumn:
我正在调用以下两行。第二行崩溃。: var a = long.Parse("2,147,483,648", NumberStyles.AllowThousands); var b = long.Par
我正在尝试解析值为“-51.739253997802734”的经度。 var unknownGeoCoordinate = GeoCoordinate.Unknown; double latitude
为了解析表示数字的字符串,用逗号将千位数字与其余数字分开,我试过 int tmp1 = int.Parse("1,234", NumberStyles.AllowThousands); double
我是一名优秀的程序员,十分优秀!