C# 将字符串解析为 int32 - 值太大

标签 c#

我从一个包含 INT32 值的外部接口(interface)接收到一个字符串。这个值代表“-100”——一个带符号的整数——因此,看起来像这个字符串“4294967196”。 如果它看起来像“-100”,我可以使用 Int32.TryParse() 将其转换为带符号的值。 但就我而言,它按原样解释这些值并告诉我该值太大 (>2.147.483.647)。 有什么解决方法可以使它正常工作吗?如何告诉解析器前导 1 不是数字?

编辑:很抱歉不准确。我收到的值是一个类似于“4294967196”的字符串。它表示一个值为 -100 的 Uint32。如果接口(interface)将返回一个包含“-100”的字符串,则可以只使用 Int32.TryParse()。这就是我想表达的意思。

最佳答案

使用 uint.TryParse() 并将结果转换为 int

string s = "4294967196";
uint ux;
int x = 0;
if (uint.TryParse(s, out ux))
{
    x = (int)ux;
}
// x = -100

关于C# 将字符串解析为 int32 - 值太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304969/

相关文章:

c# - 如何划分 3 个 div(CSS + MVC)

C# XNA 相当于带有比较器的 Java PriorityQueue?

c# - Xamarin - 布局云未加载 : The operation failed due to an internal error

c# - 如何在 XPS 文档中设置权限?

C# 将字符串内容转换为字节数组

c# - 如何发送 3 次 Ping 请求?

c# - 设置 CancellationToken 时抛出任意异常是不好的做法吗?

c# - 当 EventSystem 在场景中时,AudioSource 未在 Unity3d 中播放

c# - 字符串字段的查询过滤器设计

c# - 制作类型集合并对其进行检查的最佳方法