c - 对 NaN 值进行签名检查

标签 c visual-studio unix nan sign

我的程序在计算期间可以生成nan-nan 值。 我使用 isnan 方法检查值是否为 nan/-nan

我还必须区分 nan 值是正数还是负数(nan-nan)。我该怎么做?

补充:我需要 WIN 和 Unix/Linux 的跨平台解决方案

最佳答案

尝试 signbit来自 <math.h> :

Description

signbit() is a generic macro which can work on all real floating-point types. It returns a nonzero value if the value of x has its sign bit set.

...

NaNs and infinities have a sign bit.

它显然是 C99 和 POSIX.1-2001 的一部分,但如果您不想使用/符合两者中的任何一个,您可以自己编写一个宏/函数。

关于c - 对 NaN 值进行签名检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781072/

相关文章:

c - 如何比较两个文件中的字符串?

c# - 是否可以从 Visual Studio 编译 C# 程序以在 Mac 上运行?

c++ - ASM at&t 语法

unix - 无法创建 .vim 目录

c - 如何在没有任何附加参数的情况下获取函数中的数组大小

c++ - 我无法在不使用指针的情况下返回二维数组!在制作井字游戏时,这是我的升级功能

c - `execl` 是否需要 NULL 作为最后一个参数?

visual-studio - 升级到 Azure SDK 2.6 后无法在 Windows 通用应用程序中加载共享 'project'

windows - 哪里可以下载windows xp平台的SDK?

c - Windows、fork 和 execv