什么是NaN?
NaN,“非数字”的首字母缩写是一个例外,通常在表达式导致无法表示的数字的情况下发生。例如负数的平方根。
// C++ code to demonstrate NaN exception
#include
#include // for sqrt()
using namespace std;
int main()
{
float a = 2, b = -2;
// Prints the number (1.41421)
cout << sqrt(a) << endl;
// Prints "nan" exception
// sqrt(-2) is complex number
cout << sqrt(b) << endl;
return 0;
}
输出:
1.41421
-nan
如何检查NaN?
方法1:使用compare(“ ==”)运算符。
在这种方法中,我们通过将数字与自身进行比较来检查数字是否复杂。如果结果为真,则该数字并不复杂,即为实数。但是,如果结果为假,则返回“ nan”,即数字复杂。
// C++ code to check for NaN exception
// using "==" operator
#include
#include // for sqrt()
using namespace std;
int main()
{
float a = sqrt(2);
float b = sqrt(-2);
// Returns true, a is real number
// prints "Its a real number"
a==a? cout << "Its a real number" << endl:
cout << "Its NaN" << endl;
// Returns false, b is complex number
// prints "Its nan"
b==b? cout << "Its a real number" << endl:
cout << "Its NaN" << endl;
return 0;
}
输出:
Its a real number
Its NaN
方法2:使用内置函数“ isnan()”。
检查NaN的另一种方法是使用“ isnan()”函数,如果数字是复数,则此函数返回true,否则返回false。
// C++ code to check for NaN exception
// using "isnan()"
#include
#include // for sqrt() and isnan()
using namespace std;
int main()
{
float a = sqrt(2);
float b = sqrt(-2);
// Returns false as a
// is real number
isnan(a)? cout << "Its NaN" << endl:
cout << "Its a real number" << endl;
// Returns true as b is NaN
isnan(b)? cout << "Its NaN" << endl:
cout << "Its a real number" << endl;
return 0;
}
输出:
Its a real number
Its NaN
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。