Expanding on NobbZ’s answer: 5.9902387 is the exact minimum number of digits for a decimal representation of the 32-bit floating point number closest to 5.9902389. FWIW, I see 5.9902387 printed from the playground link. I read NobbZ’s answer to mean that he got 5.9902389.
Unfortunately for this case, the FloatConverter he linked to uses float64 and I don’t see an option for float32. Almost everyone always uses float64 all the time now anyway.
If you need eight digits of accuracy, just use float64 instead of float32, but maybe your example is a simplification of your real problem. More bits means more accuracy. If you need even more accuracy, you’ll pay a heavy performance penalty. It may be worth it depending on your use case.