diff --git a/src/ifcconvert/WavefrontObjSerializer.cpp b/src/ifcconvert/WavefrontObjSerializer.cpp index 19643be430..6244b001fa 100644 --- a/src/ifcconvert/WavefrontObjSerializer.cpp +++ b/src/ifcconvert/WavefrontObjSerializer.cpp @@ -17,12 +17,13 @@ * * ********************************************************************************/ +#include +#include + #include "../ifcgeom/IfcGeomRenderStyles.h" #include "WavefrontObjSerializer.h" -#include - bool WaveFrontOBJSerializer::ready() { return obj_stream.is_open() && mtl_stream.is_open(); } @@ -70,6 +71,8 @@ void WaveFrontOBJSerializer::write(const IfcGeom::TriangulationElement* obj_stream << "g " << o->unique_id() << "\n"; obj_stream << "s 1" << "\n"; + obj_stream << std::setprecision(std::numeric_limits::digits10); + const IfcGeom::Representation::Triangulation& mesh = o->geometry(); const int vcount = mesh.verts().size() / 3; diff --git a/src/ifcparse/IfcWrite.cpp b/src/ifcparse/IfcWrite.cpp index 86486ed992..f324742389 100644 --- a/src/ifcparse/IfcWrite.cpp +++ b/src/ifcparse/IfcWrite.cpp @@ -19,6 +19,7 @@ #include #include +#include #include @@ -327,7 +328,7 @@ private: std::string format_double(const double& d) { std::ostringstream oss; oss.imbue(std::locale::classic()); - oss << std::setprecision(15) << d; + oss << std::setprecision(std::numeric_limits::digits10) << d; const std::string str = oss.str(); oss.str(""); std::string::size_type e = str.find('e');