From f93301562dc2e78a567789349a056239cd65932a Mon Sep 17 00:00:00 2001
From: Andre Sailer <andre.philippe.sailer@cern.ch>
Date: Fri, 27 Mar 2015 15:24:39 +0000
Subject: [PATCH] _toString: fixes

use scientific format for float/double
correct the unsigned long and long format output (l is length specifier)
---
 DDCore/include/DD4hep/Handle.h   | 4 ++--
 DDCore/include/XML/XMLElements.h | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/DDCore/include/DD4hep/Handle.h b/DDCore/include/DD4hep/Handle.h
index a82299f91..361045121 100644
--- a/DDCore/include/DD4hep/Handle.h
+++ b/DDCore/include/DD4hep/Handle.h
@@ -51,9 +51,9 @@ namespace DD4hep {
     /// String conversions: integer value to string  \ingroup DD4HEP_GEOMETRY
     std::string _toString(int value, const char* fmt = "%d");
     /// String conversions: float value to string  \ingroup DD4HEP_GEOMETRY
-    std::string _toString(float value, const char* fmt = "%30.30f");
+    std::string _toString(float value, const char* fmt = "%.17e");
     /// String conversions: double value to string  \ingroup DD4HEP_GEOMETRY
-    std::string _toString(double value, const char* fmt = "%30.30f");
+    std::string _toString(double value, const char* fmt = "%.17e");
     /// Pointer to text conversion
     std::string _ptrToString(const void* p, const char* fmt = "%p");
     /// Format any pointer (64 bits) to string  \ingroup DD4HEP_XML
diff --git a/DDCore/include/XML/XMLElements.h b/DDCore/include/XML/XMLElements.h
index c2a642fe5..b0dc23d19 100644
--- a/DDCore/include/XML/XMLElements.h
+++ b/DDCore/include/XML/XMLElements.h
@@ -98,17 +98,17 @@ namespace DD4hep {
     /// Do-nothing version. Present for completeness and argument interchangeability  \ingroup DD4HEP_XML
     std::string _toString(const std::string& s);
     /// Format unsigned long integer to string with arbitrary format  \ingroup DD4HEP_XML
-    std::string _toString(unsigned long i, const char* fmt = "%ul");
+    std::string _toString(unsigned long i, const char* fmt = "%lu");
     /// Format unsigned integer (32 bits) to string with arbitrary format  \ingroup DD4HEP_XML
     std::string _toString(unsigned int i, const char* fmt = "%u");
     /// Format signed integer (32 bits) to string with arbitrary format  \ingroup DD4HEP_XML
     std::string _toString(int i, const char* fmt = "%d");
     /// Format signed long integer to string with arbitrary format  \ingroup DD4HEP_XML
-    std::string _toString(long i, const char* fmt = "%fd");
+    std::string _toString(long i, const char* fmt = "%ld");
     /// Format single procision float number (32 bits) to string with arbitrary format  \ingroup DD4HEP_XML
-    std::string _toString(float d, const char* fmt = "%30.30f");
+    std::string _toString(float d, const char* fmt = "%.17e");
     /// Format double procision float number (64 bits) to string with arbitrary format  \ingroup DD4HEP_XML
-    std::string _toString(double d, const char* fmt = "%30.30f");
+    std::string _toString(double d, const char* fmt = "%.17e");
     /// Format void pointer (64 bits) to string with arbitrary format  \ingroup DD4HEP_XML
     std::string _ptrToString(const void* p, const char* fmt = "%p");
     /// Format void pointer (64 bits) to string with arbitrary format  \ingroup DD4HEP_XML
-- 
GitLab