Apparently cl.exe treats floats as doubles and compares them against FLT_MAX before converting them (see Bug #48324). It would be really nice if people didn't use constants that are more precise than the number format actually supports...
Best, Erich