c# - long.Parse() C#

标签 c# .net-3.5

我如何在 C# 中将字符串(例如“-100,100”)转换为 long。

我目前有一行代码是

long xi = long.Parse(x, System.Globalization.NumberStyles.AllowThousands);

但是当 x 是“负数”时,这会中断。

我的方法:

long xi = long.Parse("-100,253,1", 
System.Globalization.NumberStyles.AllowLeadingSign & System.Globalization.NumberStyles.AllowThousands);

错了,因为它坏了。

最佳答案

试一试:

long xi = long.Parse(x, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowLeadingSign);

这很可能是因为您正在声明标志,所以您可能需要声明所有可能会被击中的标志。 我刚刚使用问题中给定的字符串值确认此代码在测试项目中有效。让我知道它是否符合您的要求。在单个参数中声明多个标志时使用 |而不是 &

编辑: http://msdn.microsoft.com/en-us/library/cc138362.aspx 在“作为位标志的枚举类型”标题下找到不同位运算符的解释(这比我想象的更难找到。)

关于c# - long.Parse() C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715534/

相关文章:

c# - 从方法返回的值有多安全?

c# - StringBuilder.AppendFormat 抛出异常

c# - 尝试在 Visual Studio Code 中调试 C# 时出现“要执行的应用程序不存在”错误

c# - 使用StreamReader复制图像时损坏

c# - 如何知道在列表框中按下了哪个生成的按钮?

.net - 在 2.0 运行时运行 .NET4 项目

c# - 部分延迟加载

c# - LINQ to Objects - 初始化列表

.net - 在键/值集合中使用 List<T> 的最佳方法?

c# - 缓存 ASP.NET AJAX 服务 javascript 代理