我从一个包含 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/