diff --git a/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.cpp b/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.cpp index 7ed227a5c5..826b162cd4 100644 --- a/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.cpp +++ b/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.cpp @@ -58,6 +58,11 @@ bool RifStimPlanModelDeviationFrkExporter::writeToFile( RimStimPlanModel* stimPl convertFromMeterToFeet( mdValues ); convertFromMeterToFeet( tvdValues ); + // Round to less precision. StimPlan does not handle high precision. + int numSignificantDigits = 2; + roundToPrecision( mdValues, numSignificantDigits ); + roundToPrecision( tvdValues, numSignificantDigits ); + std::vector exportTvdValues; std::vector exportMdValues; fixupDepthValuesForExport( tvdValues, mdValues, exportTvdValues, exportMdValues ); @@ -83,7 +88,7 @@ void RifStimPlanModelDeviationFrkExporter::appendHeaderToStream( QTextStream& st //-------------------------------------------------------------------------------------------------- void RifStimPlanModelDeviationFrkExporter::appendToStream( QTextStream& stream, const QString& label, const std::vector& values ) { - stream.setRealNumberPrecision( 20 ); + stream.setRealNumberPrecision( 8 ); stream << "" << '\n' << "" << '\n' << label << '\n' @@ -122,6 +127,23 @@ void RifStimPlanModelDeviationFrkExporter::convertFromMeterToFeet( std::vector& data, int numSignificantDigits ) +{ + auto roundUp = []( double value, int decimalPlaces ) -> double + { + const double multiplier = std::pow( 10.0, decimalPlaces ); + return std::ceil( value * multiplier ) / multiplier; + }; + + for ( size_t i = 0; i < data.size(); i++ ) + { + data[i] = roundUp( data[i], numSignificantDigits ); + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.h b/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.h index b673b51d0a..05edbc04e5 100644 --- a/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.h +++ b/ApplicationLibCode/FileInterface/RifStimPlanModelDeviationFrkExporter.h @@ -42,4 +42,5 @@ private: static void appendToStream( QTextStream& stream, const QString& label, const std::vector& values ); static void appendFooterToStream( QTextStream& stream ); static void convertFromMeterToFeet( std::vector& data ); + static void roundToPrecision( std::vector& data, int numSignificantDigits ); };