gpt4 book ai didi

c++ - 与自身双重比较

转载 作者:太空宇宙 更新时间:2023-11-04 16:06:13 25 4
gpt4 key购买 nike

我正在分析一段代码,但我不明白这一行:

double level = 0;

...

if (!(level == level) && !(level < level) && !(level > level))
exit(0);

我认为这是关于双重比较主题。知道它是什么吗?

最佳答案

对于不是数字 (NaN),这是一个设计过度的测试。

NaN 是一个特殊的浮点值。 (并非所有浮点类型都有它,但最常见的一种 - IEEE754 - 有。)

它被定义为比较不等于所有其他数字,包括它自己。

它也被定义为不大于或不小于任何其他数字,包括它自己。 (尽管此后续测试是多余的)。

从 C++11 开始,您可以改用 std::isnan(level)。在此之前,我最喜欢的测试方法是使用相当简单的表达式 level != level

关于c++ - 与自身双重比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34879582/

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