@nprofile1q... No, it is the other way round, you literally limit yourself to the same value range as int24. 2^30 possible values go in, 2^24 possible values come out.
Floats already do exactly the thing you would want, and you get virtually unlimited range on top, you just have to not make the wrong type of transformation.
Look at it this way, you have already got a value that fits into the float buffer, there is no way you can get more precision by transforming that value.