std::isnan

来自cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基础操作
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
指数函数
(C++11)
(C++11)
(C++11)
(C++11)
幂函数
(C++11)
(C++11)
三角与双曲函数
(C++11)
(C++11)
(C++11)
误差与伽马函数
(C++11)
(C++11)
(C++11)
(C++11)
最接近整数的浮点操作
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
浮点操作函数
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
分类/比较
(C++11)
(C++11)
(C++11)
isnan
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
宏常量
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
 
定义于头文件 <cmath>
bool isnan( float arg );
(1) (C++11 起)
bool isnan( double arg );
(2) (C++11 起)
bool isnan( long double arg );
(3) (C++11 起)
bool isnan( Integral arg );
(4) (C++11 起)
1-3) 确定给定的浮点数 arg 是否一个非数( NaN )值。
4) 一组接受任何整数类型arg 参数的虫子啊或函数模板。等价于 (2) (参数被转型为 double )。

目录

[编辑] 参数

arg - 浮点值

[编辑] 返回值

arg 为 NaN 则为 true ,否则为 false

[编辑] 注意

有多个拥有不同符号位和载荷的不同 NaN 值,参阅 std::nanstd::numeric_limits::quiet_NaN

NaN 值决不与自身或其他 NaN 值比较相等。 IEEE-754 不要求复制 NaN 保留其位表示(符号与载荷),尽管大多数实现保留。

另一种测试浮点值是否 NaN 的方式是与自身比较: bool is_nan(double x) { return x != x; }

[编辑] 示例

#include <iostream>
#include <cmath>
#include <cfloat>
 
int main()
{
    std::cout << std::boolalpha
              << "isnan(NaN) = " << std::isnan(NAN) << '\n'
              << "isnan(Inf) = " << std::isnan(INFINITY) << '\n'
              << "isnan(0.0) = " << std::isnan(0.0) << '\n'
              << "isnan(DBL_MIN/2.0) = " << std::isnan(DBL_MIN/2.0) << '\n'
              << "isnan(0.0 / 0.0)   = " << std::isnan(0.0/0.0) << '\n'
              << "isnan(Inf - Inf)   = " << std::isnan(INFINITY - INFINITY) << '\n';
}

输出:

isnan(NaN) = true
isnan(Inf) = false
isnan(0.0) = false
isnan(DBL_MIN/2.0) = false
isnan(0.0 / 0.0)   = true
isnan(Inf - Inf)   = true

[编辑] 参阅

(C++11)
(C++11)
(C++11)
不是数字的值(NaN)
原文:
not-a-number (NaN)
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
对给定的浮点值分类
原文:
categorizes the given floating point value
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
(C++11)
检查给定的浮点值是否为有限值
原文:
checks if the given number has finite value
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
(C++11)
检查给定的浮点值是否是无限值
原文:
checks if the given number is infinite
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
(C++11)
检查给定的数字是否是规格化的
原文:
checks if the given number is normal
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
检查给定的两个浮点值是否无序
原文:
checks if two floating-point values are unordered
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
isnanC 文档