Yes, the weakness is the lack of floating point hardware.
Some alternative way is to try to multiply your value to some 1000 times or so. Then do your calculation in integer (TInt, 32 bits, right?) When you proved your new calculations are correct, you can try to speed it up by changing your code, for example, use shift when multiple by 2 (or 2 powers, both + and - )
My experience is, for some repeat millions calculation of some divide by 2, after this kind of optimization, usually 20% performance improvement.
To be more real, I shorten a lengthy calculation from 30 seconds down to 10 or 6 seconds (I forgot the exact value)