I'm designing a single precision floating point multiplier on hardware and I use python to verify my design. This is the single precision floating point format. 

s | exponent | mantissa
=======================

The multiplied result is 

(S1^S2)| E1 + E2 - 127 | Mantissa1 \* Mantissa2
===============================================

I'm having a problem at rounding the number after performing the multiplication of two mantissas. You know, mantissa is 24 bits (23 and 1 hidden bit) and multiply two 24 bits will give an 48 bits. The mantissa field can only contain 23 bits so I tried truncating it, like this:
[example of mantissa truncating](https://i.stack.imgur.com/Id9V2.png). But the result does not seem right when compare to python float32 multiplication.  

So I'm here to ask how python do to the mantissa multiplication thing. Thank you.