gpt4 book ai didi

比较 float

转载 作者:行者123 更新时间:2023-11-30 21:33:04 29 4
gpt4 key购买 nike

在您认为我在问同样的 N% 问题之前,请先阅读它并请注意它。

我正在开发一个项目,其中有更多返回 double 的函数,其中一些函数可能是相同的,这在我的项目中是一件好事,如果是这样,那么我需要 double比较看看是否相等。

我知道进行相等比较 if( x == y )这不是一件聪明的事情,我们不需要说出原因,但我们可以检查 <>这是这个问题的一部分。

语言(标准)是否保证比较 <>是100%吗?

如果是,则可以使用以下程序:

#include <stdio.h>

int main(void){
double x = 3.14;
double y = 3.14;

if( x < y || x > y){
/* Are not Equal */
}else{
/* Are Equal, foo() will be called here\n" */
foo(x, y);
}
}

foo(x, y);被处决?因为XY这里应该是相等的。

编辑:这个问题并不是寻求比较两个 double 的方法,这只是我应该使用还是不应该使用 < > 而不是 == 的事实

最佳答案

I know that doing an equality comparison if( x == y ) is not a smart thing

这根本不是真的。这可能是正确的做法,也可能是错误的做法,具体取决于具体问题。

if (x < y || x > y)

这保证了与1完全相同的效果

if (x != y)

和相反的效果

if (x == y)

当一个人错了,另一个人也错了。当一个人是对的时,另一个人也是对的。使用 < 编写相等条件和>符号而不是 ==!=不会突然变得更聪明。

<小时/>

[1] 除非操作数之一是 NaN。

关于比较 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686112/

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