C#int.TryParse和float.TryParse都解析了负值并返回true

时间:2017-08-07 12:35:19

标签: c# type-conversion

我正在处理一些基本数据类型。 我需要找到用户输入数据类型。

每当我使用int.TryParse和float.TryParse都解析负值并返回true。

这是错误吗?或者这是我所知道的基本功能。

2 个答案:

答案 0 :(得分:1)

不,这不是错误。 intfloat数据类型can hold negative values都是如此,因此解析负值可以返回true。

答案 1 :(得分:1)

如果您查看float的文档,请说:

  

float类型可以表示大约1.5×10-45到3.4×1038的值,精度为7位。

查看int的文档告诉您:

  

int类型表示带符号的32位整数,其值介于-2147483648和2147483647之间。

这意味着可以定义使用相应的TryParse方法解析此范围内的负数。这不是一个错误。

表示无符号整数别名uint

  

uint类型表示无符号32位整数,其值介于0和4294967295之间。

uint res;
bool b = uint.TryParse("-7", out res);

将产生false。因为该值超出范围