关于数值相等判断的疑惑

变量a和b为double型

a - b == 0
a == b
(a-b>=-1e-6) && (a-b<=1e-6)
这三个有什么区别呢?
哪个会更好啊?

阅读 1.3k
1 个回答

由于浮点数计算机无法精确表示的问题, 前两个判断的方式,结果可能不符合预期,一般认为他们的差异很小时,就时相等的.所以一般用 fabs(a-b)<=1E-6 也就是你的第三种方式来判断

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进