do not turn 0*x to 0 in the case of floats, since NaNs break there; fixes #1661