handles floating points inaccuracies with rounding