gpt4 book ai didi

c++ - IsNan vs value != 64 位 VS2010 上的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:27 27 4
gpt4 key购买 nike

您好,我有一个功能,仅在发布 64 位版本时才会出现奇怪的行为。 32 位适用于所有情况,64 位适用于调试。不管怎样,这里是原始代码,value 的值是一个实数,如 5 或 100 等:

static void 
Foo(char **pInOut, unsigned int key, double value)
{
if (value == -HUGE_VAL)
return;

if (value != value)
return;

// Does stuff that isn't happening
}

我在玩,我把 value != value 替换为:

static void 
Foo(char **pInOut, unsigned int key, double value)
{
if (value == -HUGE_VAL)
return;

if (_isnan(value))
return;

// Does stuff that happens now
}

现在可以了。 value != value 仍然有效,对吗?我是否遗漏了什么……我只是不明白为什么旧方法行不通?

最佳答案

如果它是 NaN,则 value!=value 将为真。但如果它不是 NaN,则不能保证 value!=value 为 false。

关于c++ - IsNan vs value != 64 位 VS2010 上的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203984/

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