c++的浮点数只是一个近似数,
比如double a = 0.01;,这样看起来a是等于0.01的,但是实际上还是存在一定的偏差的。
所以两个浮点数在判断相等的时候,一般都是
abs(a - b) < 1e-6 来判断两个浮点数是否相等。
而一般情况下,判断两个浮点数大小的时候,都是直接 a < b 进行判断。
但是这样是有问题的,经过测试,要 (a < b && abs(a - b) >= 1e-6) 进行判断才能比较准确地判断出两个数值的大小。
一般第一点判断相等的几乎入门了编程都知道,但是第二个不自己摸索真的很难发现,并且这个在不对数值有精度限制下,一般是正确的,但是一旦项目中涉及精度的问题,那么这个也是一个大坑。