1
0
mirror of https://github.com/nlohmann/json synced 2024-12-11 20:20:06 +00:00
nlohmannjson/develop
abolz 332f352033 Add an implementation of the Grisu2 algorithm for binary to decimal floating-point conversion
This is an attempt to fix #360. The algorithm produces
decimal representations which are guaranteed to roundtrip
and in ~99.8% actually produces the shortest possible
representation. So this is a nice compromise between using
a precision of digits10 and max_digits10.

Note 1:

The implementation only works for IEEE single/double precision
numbers. So the old implementation is kept for compatibility
with non-IEEE implementations and 'long double'.

Note 2:

If number_float_t is 'float', not all serialized numbers can
be recovered using strtod (strtof works, though). (There is
exactly one such number and the result is off by 1 ulp.)
This can be avoided by changing the implementation (the fix
is trivial), but then the resulting decimal numbers are not
exactly short.
2018-01-15 21:07:26 +01:00
..
detail Add an implementation of the Grisu2 algorithm for binary to decimal floating-point conversion 2018-01-15 21:07:26 +01:00
adl_serializer.hpp 🔨 some clean up 2018-01-10 10:18:31 +01:00
json_fwd.hpp ♻️ reorganized code 2018-01-09 18:30:02 +01:00
json.hpp ♻️ reorganized code 2018-01-09 18:30:02 +01:00