printf("%# 01.1g", 9.8) should yield 1.e01, but yields 10.; this is likely due to a mis-evaluation of how many characters the exponential-format takes up, resulting in a mistaken decision to use decimal mode.
See discussion of this issue on StackOverflow.