Here's how I do that...
What degree of accuracy do you need to display?
If it's 2 decimal places, then multiply your float by 100 at the beginning and start with that result when you break it down into integer sized pieces. Then when you are displaying the result, you have to make the decimal point appear correctly, (...divide it by 100 or scale it...depends on the display software...)
You should be able to do this with just two integers. Use one for the least significant half, and the other for the most significant half, display them sided by side on the display, and enable leading zeros for the least significant half (or both for best appearance when the value rolls over 9999)
Lets say: BDFT = 123456.78 (floating point address)
and BDFT_x, MS_bdft, and LS_bdft are all integers
BDFT_x = BDFT * 100 = 12345678
MS_bdft = BDFT_x / 1000 = 12345
LS_bdft = BDFT - (MS_bdft * 1000) = 678
Then display
MS_bdft;LSBDFT
or
12345;678
and manipulate the decimal place as required by the HMI software to get:
123456.78
This is only good up to 8 digits, and a round up may occur in the first divide, depending on your processor. In that case you may have to write logic to detect that and subtract it back out...If you need a different level of precision or more digits, the logic can be modified to achieve that, but hopefully this will get ya started...
Paul