f32::ZERO and f64::ZERO are currently +0.0, which is not the additive identity. For non-NaN f32 and f64 under default rounding, the additive identity is -0.0 and not +0.0, since (-0.0) + (+0.0) == (+0.0) but (-0.0) + (-0.0) == (-0.0). (EDIT: interpreting == bitwise.)
f32::ZEROandf64::ZEROare currently+0.0, which is not the additive identity. For non-NaNf32andf64under default rounding, the additive identity is-0.0and not+0.0, since(-0.0) + (+0.0) == (+0.0)but(-0.0) + (-0.0) == (-0.0). (EDIT: interpreting==bitwise.)