gpt4 book ai didi

c++ - Float 或 Double 特殊值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:58 25 4
gpt4 key购买 nike

我有 double (或浮点)变量,它们可能是“空的”,因为没有有效值。我如何使用内置类型 float 和 double 表示这种情况?

一个选项是包含一个 float 和一个 bool 值的包装器,但这行不通,因为我的库有存储 double 值的容器,而不是表现为 double 值的对象。另一个是使用 NaN (std::numeric_limits)。但我看不出有什么办法可以检查变量是否为 NaN。

如何解决需要“特殊”浮点值来表示数字以外的其他含义的问题?

最佳答案

我们已经通过使用 NaN 做到了这一点:

double d = std::numeric_limits<double>::signaling_NaN();
bool isNaN = (d != d);

与自身比较是否相等的 NaN 值将产生 false。这就是您测试 NaN 的方式,但似乎只有在 std::numeric_limits<double>::is_iec559 时才有效是真的(如果是这样,它也符合 ieee754)。

在C99 中有一个名为isnan 的宏。为此在 math.h ,它也会检查 float 的 NaN 值。

关于c++ - Float 或 Double 特殊值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/332705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com