Hacker News new | ask | show | jobs
by bedatadriven 2143 days ago
Nor are there floats in JSON! Json numbers are stored in decimal with varying lengths.
3 comments

Yes, but almost any standard JSON package will map a number with decimals to their internal float.

While alternative parsers exists (javascript has LosslessJSON for example), they're a pain to use.

Using strings for floats only has a tiny overhead, but it allows users to use standard JSON parsers and it signals a good practice.

If you use JSON numbers to serialize money, you create a situation where the path with the least friction is the incorrect one.

> While alternative parsers exists (javascript has LosslessJSON for example), they're a pain to use.

FWIW in Python that's as uncomplicated as

    json.loads('1.1', parse_float=decimal.Decimal)
though of course it helps tremendously that `decimal` is part of the stdlib.
Numbers in JSON are stored as strings. So as long as encoder/decoder is storing them in suitable format e.g BigDecimal no precision need be lost.
That may be technically true, but decoding sad encoding JSON without reading numbers as doubles is a special feature.