pencode: Fix encoding of large float values
pencode: Fix encoding of large float values

Python's `str()` approximates large floats using engineering notation,
e.g.

```
>>> str(1e12+1)
'1e12'
```

This means that `float(str(f))` does not always equal `f`. Failing
exmaple discovered by Hypothesis

lordmauve/chopsticks,lordmauve/chopsticks