假设a
、b
、c
和d
被声明为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) )
IEEE754或当前的C或C++标准有什么保证吗?会不会有编译器在编译时将其优化为真呢?我最感兴趣的是正常值,而不是不正常的或特殊的值。
在我看来,这主要取决于减法过程中的舍入误差。
https://stackoverflow.com/questions/31109417
复制相似问题