diff --git a/src/phasicFlow/repository/Time/timeControl.H b/src/phasicFlow/repository/Time/timeControl.H index ba41e6e0..1f81215d 100644 --- a/src/phasicFlow/repository/Time/timeControl.H +++ b/src/phasicFlow/repository/Time/timeControl.H @@ -105,8 +105,7 @@ public: word currentTimeWord() const { - word ctw = real2Word( currentTime(), timePrecision()); - return ctw; + return real2FixedStripZeros( currentTime(), timePrecision());; } int32 currentIter()const diff --git a/src/phasicFlow/types/basicTypes/bTypesFunctions.C b/src/phasicFlow/types/basicTypes/bTypesFunctions.C index a67fabf5..50a58694 100755 --- a/src/phasicFlow/types/basicTypes/bTypesFunctions.C +++ b/src/phasicFlow/types/basicTypes/bTypesFunctions.C @@ -72,6 +72,38 @@ pFlow::word pFlow::int322Word(const int32 & v) return ss.str(); } +pFlow::word pFlow::removeDecimalZeros(const word& str) +{ + auto dec = str.find('.'); + if(dec == word::npos) return str; + + auto len = str.size(); + if(len == word::npos) return str; + + auto firstZero = word::npos; + for(auto n=len-1; n>dec;n--) + { + if( str[n] == '0' ) + { + firstZero = n; + } + else + { + break; + } + } + + if(firstZero == dec+1) firstZero = dec; + + return str.substr(0,firstZero); +} + +pFlow::word pFlow::real2FixedStripZeros(const real & v, int32 numPrecision) +{ + word strVal = real2Fixed(v, numPrecision); + return removeDecimalZeros(strVal); +} + pFlow::word pFlow::toUpper(const word & inStr) { word oStr(inStr); diff --git a/src/phasicFlow/types/basicTypes/bTypesFunctions.H b/src/phasicFlow/types/basicTypes/bTypesFunctions.H index cd329b27..5f872bf2 100755 --- a/src/phasicFlow/types/basicTypes/bTypesFunctions.H +++ b/src/phasicFlow/types/basicTypes/bTypesFunctions.H @@ -57,6 +57,10 @@ word real2Fixed(const real & v, int32 numPrecision = 6); word real2Word(const real & v, int32 numPrecision = 6); +word removeDecimalZeros(const word& str); + +word real2FixedStripZeros(const real & v, int32 numPrecision = 6); + word int322Word(const int32 & v);