diff --git a/DDCore/include/DD4hep/Handle.h b/DDCore/include/DD4hep/Handle.h
index a82299f91397c5ebc73966886facab6b6d0852ee..361045121e5f94033c0fc2d8f7ea3160549d0f82 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 c2a642fe5562a8a8bc9e88cdc213b3250eccd41c..b0dc23d19c8d68cf27bc862a49b107886105a5f7 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