Because the variable degC is declared int, this
degF = degC * 50 * 1000 ;
will be evaluated using (16-bit) int arithmetic and will have a rollover problem.
degF2 = degC * 50. * 1000. ;
has no such problem because the value from the variable degC will be upgraded to a double and thus all of the arithmetic will be performed as double and then downgraded to float for assignment to degF2. There is no rollover issue here.
Note that if the variable degC had been declared float or double, even the first expression would have worked well because EVERYTHING (values and arithmetic) would have been handled as double until the assignment to the float variable degF.