使用std::isnan()和std::isinf()可安全检测NaN和无穷大,分别定义于<cmath>,前者判断非数,后者结合符号位区分正负无穷,避免直接比较。

在C++中,浮点数的NaN(Not a Number)和Infinity(无穷大)是特殊值,常出现在数学运算异常时,比如0.0除以0.0或1.0除以0.0。正确识别这些值对程序稳定性很重要。
判断一个浮点数是否为NaN,推荐使用std::isnan()函数:
示例代码:
bool is_nan = std::isnan(0.0 / 0.0); // true使用std::isinf()可以判断是否为无穷大:
立即学习“C++免费学习笔记(深入)”;
也可用std::isfinite()检查是否为有限值——若返回false,说明是NaN或无穷大。
示例:
double y = 1.0 / 0.0;不能通过比较操作判断NaN,因为NaN不等于任何值,包括它自己:
基本上就这些。使用std::isnan和std::isinf是最安全、可读性最好的方式。不同平台行为一致,避免手动判断带来的移植问题。
以上就是c++++中怎么判断NaN和infinity_C++浮点数NaN与Infinity检测方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号