I no longer have my ZX81 or Spectrum, nor their manuals, but I do remember that both floating-point and integer values are stored as 40-bit values (and the motivation for that is addressed in Why does Sinclair BASIC have two formats for storing numbers in the same structure? - that question addresses the why rather than the how).
What I don't remember is the layout of the values. In particular, does it follow¹ the IEEE-754 principles, or is it a "Sinclair special", in the same way that ZX81 character encoding is unlike any standard? I'm also interested to see how the integers are encoded within the value space - if I were doing this within an IEEE-754 encoding, I'd probably co-opt the (otherwise unused) NaNs for this purpose.
Supplementary question that might fall within the same scope: does the format support subnormal numbers?
¹ I guess "presage" might be more accurate, as I think IEEE hadn't completed that standardisation activity at that time.
SGN PI, please!