From e46d18860705363f9d274eb5158dc0219044270f Mon Sep 17 00:00:00 2001 From: jvwilliams23 Date: Tue, 18 Mar 2025 10:31:34 +0000 Subject: [PATCH] fix limited precision of std::to_string when passing args to tetgen --- VacuumMeshing/src/Utils/parseFlags.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/VacuumMeshing/src/Utils/parseFlags.cpp b/VacuumMeshing/src/Utils/parseFlags.cpp index 8cdd5f8..99e407f 100644 --- a/VacuumMeshing/src/Utils/parseFlags.cpp +++ b/VacuumMeshing/src/Utils/parseFlags.cpp @@ -1,4 +1,7 @@ #include "Utils/parseFlags.hpp" +#include +#include +#include typedef std::function NoArgHandle; typedef std::function OneArgHandle; @@ -147,11 +150,17 @@ void inputFlags::setSwitches() { } if (maxTetVol.has_value()) { - tetSettings += "a" + std::to_string(maxTetVol.value()); + std::stringstream ss; + ss << std::fixed << std::setprecision(std::numeric_limits::digits10 + 1) << maxTetVol.value(); + std::string mystring = ss.str(); + tetSettings += "a" + ss.str(); } if (maxTriArea.has_value()) { - triSettings += "a" + std::to_string(maxTriArea.value()); + std::stringstream ss; + ss << std::fixed << std::setprecision(std::numeric_limits::digits10 + 1) << maxTriArea.value(); + std::string mystring = ss.str(); + tetSettings += "a" + ss.str(); } }