I can't take the time right now to write a program, but the Advantage module has the conversion built in, and it runs with no visible delay.
However, here's an explanation of how to do such a conversion, simplified not quite to the point of lying.
It should give the basic understanding so you can write suitable routines. For inputting numbers from a text string (e.g. typed in from a keyboard), initialize a number as 0 to build on, then take the first digit in the string and add its value to the decimal number you're building. Continue until you're out of digits, each time multiplying the build by 10 and then adding the new digit's value to the build. If you encounter a decimal point, keep track of how many digits were after it. In the Forth programming language, the decimal point automatically makes the result double-precision; but you can convert back to single if you want to. If there was a minus sign, record that too. Forth uses the same routines to convert to and from any base, with the desired base being in a variable called BASE, and it's just as easy to convert to and from base 3 or 7 or 11 for example as it is to convert to and from base 2 or 8 or 10. (Internal representation is hexadecimal.) It's not the fastest method, but it's short and works for any base.
For converting numbers to other bases for output (which will normally be a string), initialize a blank string. You will build it from right to left. Divide your number by what's in variable BASE, and use the remainder to add a text digit to the build, even if it's a 0. Keep doing that until there's 0 in the number. You can add a decimal point or other characters between digits, e.g. 12.345 or 12:36:40 (actually you might want to change BASE from 10 to 6 and back for the time readout, if you started with a number of seconds!)
The way Forth does this output number formatting is somewhat explained starting at about the middle of the page of
chapter 5 of Leo Brodie's "Starting Forth" (with ANS updates here, and they're mostly calling single-precision 32-bit).