How to distinguish signed & unsigned integers?

As per the solution to the companion question (which solves my real problem, so I no longer need this) we could solve this by

if one / two > zero
    // float
else if f32::NEG_INFINITY as _ < zero
    // integer
else
    // unsigned