no more undefined behavior when parsing floats