I decided to poke around in the Arduino IDE directory to see if I could find the function that print uses, it was easy to find at the very end of the Print.cpp file buried here:
C:...\arduino-1.6.5-r2\hardware\arduino\avr\cores\arduino
a few extra checks are included like "not a number" and divide by zero (viz. infinity) but the function otherwise uses the same approach as I ended up using in the dec2strf function.