a float is a nasty value since it comes with so many alternative representations. It can look like a simple int value 123 or have a radix 12.3. However, it can also be expressed with scientific notation like 1.23e+02. The current implementation is very simple and maybe not very efficient.
We can for sure do better!