我可以设置一个int
toNaN
吗?如果是,那么我如何检查是否int
是NaN
?
问问题
33109 次
5 回答
52
不,NaN 是一个浮点值。
an 的每个可能值int
都是一个数字。
编辑
标准说:
6.2.6.2 40) 填充位的某些组合可能会产生陷阱表示,例如,如果一个填充位是奇偶校验位。无论如何,除了作为异常条件(如溢出)的一部分之外,没有任何对有效值的算术运算可以生成陷阱表示,并且这不会发生在无符号类型中。
因此可能存在一些特定于实现的无效整数值,但没有定义生成它们的方法。
于 2010-10-16T15:17:49.803 回答
6
整数 NaN
大多数固定大小的整数格式没有任何方式明确指示无效数据。
于 2010-10-16T15:18:50.673 回答
4
我认为处理故障最合适的 API 是在您的 api 中返回第二个整数错误代码,例如:
int myfunc(args, int* realReturn);
返回的 int 是错误代码。
前面的输出在调用代码中作为指针传递:
int myInt;
if (myFunc(args, &myInt) != 0) {
//handle error
}
于 2019-06-22T12:57:51.153 回答
2
Nan 没有任何特定的 int 值。人们通常做的是使用一些大整数来表示这个值。如果它是无符号整数,那么它通常使用-1。
于 2010-10-16T15:42:50.763 回答
1
不,您不能将 an 设置int
为 NaN。
于 2010-10-16T15:18:09.637 回答