From 5f2245e7500f9024ba90e631fd865c9ffac172c2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 14 May 2012 20:20:44 +0100 Subject: [PATCH] Use appropriate number of digits when dumping floating point numbers. --- common/trace_dump.cpp | 6 ++++++ retrace/json.hpp | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/common/trace_dump.cpp b/common/trace_dump.cpp index d9dcf11..2b8c27a 100644 --- a/common/trace_dump.cpp +++ b/common/trace_dump.cpp @@ -24,6 +24,8 @@ **************************************************************************/ +#include + #include "formatter.hpp" #include "trace_dump.hpp" @@ -89,11 +91,15 @@ public: } void visit(Float *node) { + std::streamsize oldPrecision = os.precision(std::numeric_limits::digits10 + 1); os << literal << node->value << normal; + os.precision(oldPrecision); } void visit(Double *node) { + std::streamsize oldPrecision = os.precision(std::numeric_limits::digits10 + 1); os << literal << node->value << normal; + os.precision(oldPrecision); } void visit(String *node) { diff --git a/retrace/json.hpp b/retrace/json.hpp index 14ff501..6af1f4c 100644 --- a/retrace/json.hpp +++ b/retrace/json.hpp @@ -35,6 +35,7 @@ #include #include +#include #include #include @@ -332,7 +333,7 @@ public: writeNull(); } else { separator(); - os << std::dec << std::setprecision(9) << n; + os << std::dec << std::setprecision(std::numeric_limits::digits10 + 1) << n; value = true; space = ' '; } -- 2.43.0