fix rational vs float comparisons (attempt 2)