繁体   English   中英

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

[英]C# parse string to int32 - value too big

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

编辑:很抱歉不准确。 我收到的值是一个看起来像“ 4294967196”的字符串。 它表示值为-100的Uint32 如果接口返回的字符串包含“ -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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM