首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::isnan

Defined in header <cmath>

?

?

bool isnan( float arg );

(1)

(since C++11)

bool isnan( double arg );

(2)

(since C++11)

bool isnan( long double arg );

(3)

(since C++11)

bool isnan( Integral arg );

(4)

(since C++11)

1-3%29确定给定的浮点数arg是一个非a-数字%28 NaN%29值。

4%29一组重载或接受from任何论点积分型等效于%282%29%28的参数转换为double29%。

参数

arg

-

floating point value

返回值

true如果arg是南人false否则。

注记

有许多不同的nn值具有不同的符号位和有效载荷,请参见std::nanstd::numeric_limits::quiet_NaN...

NaN的价值从来不等于他们自己或其他的NaN价值。复制NaN并不是ieee-754所要求的,以保留其位表示形式%28符号和有效载荷%29,尽管大多数实现都是这样做的。

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

二次

代码语言:javascript
复制
#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';
}

二次

产出:

二次

代码语言:javascript
复制
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

二次

另见

nannanfnanl (C++11)(C++11)(C++11)

not-a-number (NaN) (function)

fpclassify (C++11)

categorizes the given floating point value (function)

isfinite (C++11)

checks if the given number has finite value (function)

isinf (C++11)

checks if the given number is infinite (function)

isnormal (C++11)

checks if the given number is normal (function)

isunordered (C++11)

checks if two floating-point values are unordered (function)

c ISNAN文件

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com