c ++比较两个浮点值

Gui*_*e07 5 c++ floating-point

我想知道在这两种方式之间比较两个双重的区别是什么:

double a1 = ...;
double a2 = ....;
Run Code Online (Sandbox Code Playgroud)
  1. fabs(a1-a2)<epsilon
  2. (fabs(a1-a2)/ a2)<epsilon

有没有更好的方法呢?

谢谢

Mar*_*one 13

我想这篇文章非常彻底地回答了你的问题.您可能希望跳到"Epsilon比较"部分.