NaN有两种类型:signaling_NaN、quiet_NaN和..南本身
There are 2 kinds of NaN: signaling_NaN, quiet_NaN, and... NAN itself?
我一直认为NaN有两种:安静NaN和信号NaN。
但是后来我意识到NAN
宏的计算结果既不是。
在Visual c++中,std::numeric_limits<float>::quiet_NaN()
显示为1.#QNAN000
。
在Visual c++中,std::numeric_limits<float>::signaling_NaN()
显示为1.#QNAN000
。
然而在Visual c++中,NAN
显示为-1.#IND0000
…
-
那么
NAN
常数是什么样的NaN呢?是发信号还是不发信号? -
什么时候我应该使用
NAN
而不是其他的,什么时候我应该避免它,为什么?
您的机器没有NaN
信令。我认为#QNAN
中的Q
代表安静。检查numeric_limits::has_signaling_NaN
。对于signaling_NaN
,标准是这样说的:
对于has_signaling_NaN != false的所有专门化都有意义。专业必修is_iec559 != false
因此,它可能是必需的,但却没有意义…自然要做的是提供一个安静的NaN。
我还没有找到QNAN
和IND
的权威资源,但它们似乎都是安静的nan。可能有数百万个不同的nan,每个尾数值对应一个。如果我猜,IND
可能像一个错误代码的和终止值,例如0/0。对于通用的NAN
宏来说,这并不是一个合适的选择,但是在以这种方式定义C数字绑定之后,他们可能会坚持使用它。
相关文章:
- g++的分段错误(在NaN上使用to_string两次时)
- 输出是NaN,如何
- 为什么我在输出端得到 nan?
- 提升反序列化对象具有 nan 或 -nan 值
- Is !NaN not a NaN?
- NaN 上的宇宙飞船操作员
- C++ STL 排序会检查 NaN 吗?
- C++ 每次运行程序时我都会"nan"输出的问题
- 复制 -nan 表示浮点数,AVX __m256 复制后显示 0
- 如何使用 Node-addon-API 实现 node-nan 回调
- 为什么我的双变量通过添加 c++ 显示 nan?
- nan() 函数的参数
- 为什么 acos() 在使用点积的结果时会导致"nan(ind)"?
- 如何在 c++ 中处理 -nan 输出
- 为什么这段代码返回 -nan(ind)?C++
- Pybind11+nan节点模块冲突
- Nan::ObjectWrap to Napi::Object Wrap 无法访问 JavaScript 中的属性
- 第二个 while 循环未运行,将值设置为 "nan"
- 无穷大与 NAN 值
- 调用某个回调函数两次会导致分段错误:Nan