C++ 为什么要将某些东西转换为 NaN?

标签 c++ math nan

<分区>

我的理解是,NaN(非数字)本质上是一个从数学函数返回的常量,表示出现问题或计算无效。因此,它们是检查数字是否为 NaN 或更好的函数是有意义的,使用 CERT 编码标准对数学错误 (https://www.securecoding.cert.org/confluence/display/c/FLP32-C.+Prevent+or+detect+domain+and+range+errors+in+math+functions) 进行错误检查。

我的问题是这样的;为什么 std::nan() 存在?为什么你会想要一个有效的数字/字符串/值并将其转换为 NaN? (引用:http://en.cppreference.com/w/cpp/numeric/math/nan)

最佳答案

NaN 通常用于表示空值或缺失值,尤其是在数据分析和数据科学中。因此,应用程序通常将值初始化为 nan,以便跟踪是否已提供值,而无需使用 optional<T> 的开销。 -样结构。

其次,通常会创建要为某些输入返回 nan 的自定义数学函数。因此,这不仅仅是为了完整性。

关于C++ 为什么要将某些东西转换为 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39923278/

相关文章:

android - C++ android assetmanager 从应用程序内部目录读取文件

javascript - formatDate JavaScript 函数仅适用于 Chrome

c++ - C/C++ NaN 常量(字面量)?

c++ - 是否有替代 std::string 子字符串的方法?

c++ - 给定 : ifstream infile ("test.txt") is there advantage to use if(! infile)... 与 if(infile.good())...?

c# - 如何做半圆运动?

java - 加工时如何将圆移过线?

javascript - 为什么 NaN === NaN 是假的?

具有自定义对象的 C++ 数组

c# - 汇总单个变量的各种数值效应的结果