4 ms·
Nor are there floats in JSON! Json numbers are stored in decimal with varying lengths.
by bedatadriven 6y ago
Nor are there floats in JSON! Json numbers are stored in decimal with varying lengths.
- treve 6y agoYes, 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.
- masklinn 6y ago> 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.
- faichai 6y agoNumbers 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.
- microcolonel 6y agoThat may be technically true, but decoding sad encoding JSON without reading numbers as doubles is a special feature.