双重或浮动比较

gon*_*aao -5 c c++ floating-point

我见过这样的帖子:

浮动和双重比较最有效的方法是什么?

比较两个花车

和许多其他相关的帖子.

我在d3js库中看到,它使用以下比较:

  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
Run Code Online (Sandbox Code Playgroud)

可以在C/C++中使用它来进行比较doublefloat吗?

小智 7

以下代码是否足够?

没有.

如果没有,为什么?

因为它是相同的==(至少对于非边缘情况,即.)

  • @gongzhitaao:给定任意2个实数A和B,恰好其中一个是真的:一,A小于B.二,A大于B.三,A等于B.你的测试消除了第一个和第二种可能性.这只留下了第三个.他们是平等的.浮点值和实际实数之间当然存在差异,但不包括边缘情况,这种逻辑仍然适用. (2认同)