3

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

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

4

1 回答 1

10

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

string s = "4294967196";
uint ux;
int x = 0;
if (uint.TryParse(s, out ux))
{
    x = (int)ux;
}
// x = -100
于 2012-04-24T19:51:32.963 回答