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.
| Name |
Last commit
|
Last update |
|---|---|---|
| .github | Loading commit data... | |
| benchmarks | Loading commit data... | |
| cmake | Loading commit data... | |
| develop | Loading commit data... | |
| doc | Loading commit data... | |
| src | Loading commit data... | |
| test | Loading commit data... | |
| third_party/amalgamate | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .travis.yml | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| CODE_OF_CONDUCT.md | Loading commit data... | |
| ChangeLog.md | Loading commit data... | |
| LICENSE.MIT | Loading commit data... | |
| Makefile | Loading commit data... | |
| README.md | Loading commit data... | |
| appveyor.yml | Loading commit data... | |
| meson.build | Loading commit data... | |
| nlohmann_json.natvis | Loading commit data... |