How to create a type or subtype of all floats except 0.0?

Yes, this the standard advice for all floating-point types as any of them can be actually backed by IEEE 754 hardware.