float type weirdness