Всем привет!
Сабж.
Собственно, в чём проблема.
Беру nlohmann::json, пишу там что-то вроде:
nlohmann::json obj;
obj["id"] = id;
obj["val"] = -1.7;
s=obj.dump();
И вижу на выходе строку:
{"id": 123, "val": -1.7000000476837158}
Нет, я в принципе в курсе, что float не является точным, и что внутри у него дробная часть формируется по принципу 1/2 + 1/4+....
Но. Если запихнуть тот же самый код в JavaScript, то всё замечательно работает.
Собственно, вопрос:
как же правильно хранить float внутри json?
и нет ли в стандарте json-а какого-нибудь волшебного флажка, который заставляет его печатать float-ы прилично?
Pretty print флажок пробовал, но он просто выдал мне вместо одной строки несколько, добавив отбивку пробелами.