safer float comparisons