diff --git a/FileIO/Legacy/MeshIO.cpp b/FileIO/Legacy/MeshIO.cpp
index aead19f6ae926db17a0cd30362fb52dc0766ee9b..235c291e513348d895b3c0cce9cbc0ffe7c3761d 100644
--- a/FileIO/Legacy/MeshIO.cpp
+++ b/FileIO/Legacy/MeshIO.cpp
@@ -248,8 +248,6 @@ int MeshIO::write(std::ostream &out)
 		return 0;
 	}
 
-	setPrecision(9);
-
 	out << "#FEM_MSH\n"
 		<< "$PCS_TYPE\n"
 		<< "  NO_PCS\n"
diff --git a/FileIO/Legacy/OGSIOVer4.cpp b/FileIO/Legacy/OGSIOVer4.cpp
index d07151cac3b0a06861ba7df1dca0e7dd093a3243..9ef411d162f3a1ad639a1e474c2b91744469a671 100644
--- a/FileIO/Legacy/OGSIOVer4.cpp
+++ b/FileIO/Legacy/OGSIOVer4.cpp
@@ -13,6 +13,7 @@
  */
 
 #include <iomanip>
+#include <limits>
 #include <sstream>
 
 // ThirdParty/logog
@@ -575,7 +576,7 @@ void writeGLIFileV4 (const std::string& fname,
 		const std::size_t n_pnts(pnts->size());
 		INFO("GeoLib::writeGLIFileV4(): writing %d points to file %s.", n_pnts, fname.c_str());
 		os << "#POINTS" << "\n";
-		os.precision (20);
+		os.precision(std::numeric_limits<double>::digits10);
 		for (std::size_t k(0); k < n_pnts; k++) {
 			os << k << " " << *((*pnts)[k]);
 			if (pnt_vec->getNameOfElementByID(k, pnt_name)) {
@@ -640,7 +641,7 @@ void writeAllDataToGLIFileV4 (const std::string& fname, const GeoLib::GEOObjects
 	os << "#POINTS" << "\n";
 	for (std::size_t j(0); j < geo_names.size(); j++)
 	{
-		os.precision (20);
+		os.precision(std::numeric_limits<double>::digits10);
 		GeoLib::PointVec const* const pnt_vec(geo.getPointVecObj(geo_names[j]));
 		std::vector<GeoLib::Point*> const* const pnts (pnt_vec->getVector());
 		if (pnts) {
@@ -665,7 +666,7 @@ void writeAllDataToGLIFileV4 (const std::string& fname, const GeoLib::GEOObjects
 	geo.getStationVectorNames (stn_names);
 	for (std::size_t j(0); j < stn_names.size(); j++)
 	{
-		os.precision (20);
+		os.precision(std::numeric_limits<double>::digits10);
 		const std::vector<GeoLib::Point*>* pnts (geo.getStationVec(stn_names[j]));
 		if (pnts)
 		{
diff --git a/FileIO/Writer.cpp b/FileIO/Writer.cpp
index e15b125a7f52ec1ab2868efd6392f6da46650ab6..3e218dfc651ecbae03616aca6e71675d1430e1c2 100644
--- a/FileIO/Writer.cpp
+++ b/FileIO/Writer.cpp
@@ -16,6 +16,7 @@
 #include "Writer.h"
 
 #include <fstream>
+#include <limits>
 
 namespace FileIO
 {
@@ -29,6 +30,7 @@ std::string Writer::writeToString()
 	// Empty stream and clear error states.
 	_out.str("");
 	_out.clear();
+	_out.precision(std::numeric_limits<double>::digits10);
 
 	if (this->write(_out))
 		return _out.str();