float does not compare correctly