One way to do float format conversions (among a whole bunch of formats) is to use the
arbitrary-precision and variable-format float machinery in the GCC compiler (file real.c).
It probably doesn't quite give you what you need -- conversion from one format to
another -- but I imagine that adding this wouldn't be all that hard. If you need to
do exotic stuff, like convert from PDP-11 D format to IBM-360 double, that would be a way
to do it.
It can readily be extended to add formats it doesn't currently have. I added PDP-11
float to it in the past, that was pretty easy. I suspect stranger formats like CDC 6000
might be harder, but probably still doable.
paul