【发布时间】:2012-04-24 19:46:51
【问题描述】:
我从外部接口接收到一个字符串,该字符串包含一个INT32 值。这个值代表“-100”——一个有符号的整数——因此,看起来像这个字符串“4294967196”。
如果它看起来像“-100”,我可以使用Int32.TryParse() 将其转换为有符号值。
但在我的情况下,它按原样解释值并告诉我该值太大(> 2.147.483.647)。
有什么解决方法可以让它工作吗?如何告诉解析器前导的 1 不是数字?
编辑:抱歉不准确。我收到的值是一个类似于“4294967196”的字符串。它表示值为 -100 的 Uint32。如果接口将返回一个包含“-100”的字符串,则可以只使用Int32.TryParse()。这就是我想要表达的。
【问题讨论】:
-
“领先1”是什么意思?
-
(int) (uint.Parse("4294967196"))有什么问题? -
我错过了什么吗?你得到一个字符串
"-100",它等价于"4294967196"?我不明白“如果它看起来像-100我可以使用Int32.TryParse()将其转换为有符号值”是什么意思,因为“-100”对我来说是“-100”。而“前导 1 不是数字?” - 这是什么意思? -
@skiminok 您应该将其发布为答案
-
我仍然无法理解字符串“-100”如何转换为“4294967196”?我试过在 VS int i=-100;然后字符串 s = i.ToString(); s 持有“-100”,如果有人能解释一下,将不胜感激
标签: c#