fix floating point approximation error

This fixes issue #2867.

```
iex(11)> Float.parse("0.3534091")
{0.3534091, ""}
iex(12)> Float.parse("0.3534092")
{0.3534092, ""}
iex(13)> Float.parse("0.3534093")
{0.3534093, ""}
iex(14)> Float.parse("0.3534094")
{0.3534094, ""}
iex(15)> Float.parse("0.3534095")
{0.3534095, ""}
iex(16)> Float.parse("0.3534096")
{0.3534096, ""}
iex(17)> Float.parse("0.3534097")
{0.3534097, ""}
iex(18)> Float.parse("0.3534098")
{0.3534098, ""}
iex(19)> Float.parse("0.3534099")
{0.3534099, ""}
iex(20)> Float.parse("0.3534100")
{0.35341, ""}
```