gpt4 book ai didi

c++ - float 不等式是否保证一致

转载 作者:IT老高 更新时间:2023-10-28 22:04:13 25 4
gpt4 key购买 nike

假设 abcd 被声明为 double (或 float)。以下表达式总是正确的吗?

! ( (a >= b) && (c <= d) ) || ( (a-c) >= (b-d) )

! ( (a > b) && (c <= d) ) || ( (a-c) > (b-d) )

! ( (a >= b) && (c < d) ) || ( (a-c) > (b-d) )

IEEE 754 或当前的 C 或 C++ 标准是否有任何保证?并且任何编译器都会在编译时将其优化为简单的事实吗?我主要对正常值感兴趣,而不是对非正常值或特殊值感兴趣。

在我看来,这主要取决于减法期间的舍入误差。

最佳答案

对于 3rd 产生 false 应该足够大相等的 ab 和小的不相等的 cd ,例如a=1e30, b=1e30, c=1e-31, d=1e-30.

编辑:好的,对于第二个产生错误,通过类比到第三个,它应该足够小不相等 ab 和大相等 cd,例如a=1e-30, b=1e-31, c=1e30, d = 1e30.

不知道第一个表达式的反例...

关于c++ - float 不等式是否保证一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31109417/

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