最近在编写自己的小项目的时候出现一个莫名其妙的情况:
控件的position莫名其妙的变成nan。position本应是float类型的,现在却输出打印显示nan,完全不知道为什么额。。。
于是求助百度,这才知道:
nan,是not a number的缩写。用于处理计算中出现的错误情况,比如0.0除以0.0或者求负数的平方根。
看这意思多半是在什么地方处理数据的时候处理出现错误了。
但是在有些文章中有人提出可能是由于数据越界造成的,由于这个原因验证需要改太多地方,所以一时也难以验证。
所以目前我能想到且能做的就是在数据出现nan情况是加以判断再重新配置对应数据。
采用的判断方法是:
isnan(x)
if(isnan(x))
{
x = 0.0;
}
else
{
//TODO
}
PS:之所以记录一下,是因为之前一直没有遇到这样的情况。