@robs, does it need to match stdio.h's printf exactly? There are a lot of corner cases with floating point where its easier for use to represent things differently while still being a correct representation.