From 1707f324ef650f470298b9052b9f8a100110e681 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 31 Jan 2024 09:41:26 +0100 Subject: [PATCH] =?UTF-8?q?EgtGeneral=202.6a3=20:=20-=20la=20funzione=20To?= =?UTF-8?q?String=20per=20i=20double=20ora=20ha=20un=20parametro=20opziona?= =?UTF-8?q?le=20in=20pi=C3=B9=20(numero=20di=20errore).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EgtGeneral.rc | Bin 11630 -> 11630 bytes StringUtils.cpp | 13 +++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/EgtGeneral.rc b/EgtGeneral.rc index 6eb42a266b8146984f31351861bf39e8bef953b7..6620d9773d02567cac0f52026cebcb063bd004c9 100644 GIT binary patch delta 102 zcmaDC^)70|FE&Qw&FjTZGfjRctTQ=4kYn;MPC1|uqfk2I<_2yzX0Ws+h+-64%Yw|y SWZWDi?E+DNUB8TS5ElRj2_NzR delta 102 zcmaDC^)70|FE&P_&FjTZGfjRctTQ=4kYn;MPC1|uqfk2I<_2yzX0Ws+h+-64%Yw|y SWZWDi?E+DNUB8TS5ElRhWgqGQ diff --git a/StringUtils.cpp b/StringUtils.cpp index ae89d97..cbaea53 100644 --- a/StringUtils.cpp +++ b/StringUtils.cpp @@ -101,7 +101,7 @@ FromString( const string& sVal, STRVECTOR& vsVal) //---------------------------------------------------------------------------- const string -ToString( double dVal, int nPrec) +ToString( double dVal, int nPrec, int* pnErr) { const double BIG_NUMBER = 1e10 ; const int BIG_DIGITNBR = 10 ; @@ -124,12 +124,17 @@ ToString( double dVal, int nPrec) _ASSERT( 0) ; string sErr = "ToString Error : " + ToString( nErr) ; LOG_ERROR( GetEGnLogger(), sErr.c_str()) + if ( pnErr != nullptr) + *pnErr = nErr ; return "#Error" ; } // se buffer vuoto, risultato è numero 0 - if ( szBuff[0] == '\0') + if ( szBuff[0] == '\0') { + if ( pnErr != nullptr) + *pnErr = nErr ; return "0" ; + } // verifica per forma esponenziale int nExp ; @@ -167,6 +172,7 @@ ToString( double dVal, int nPrec) _ASSERT( 0) ; string sErr = "ToString Error : " + string( szBuff) ; LOG_ERROR( GetEGnLogger(), sErr.c_str()) + nErr = 999 ; } if ( nDecimal == 0) { *pDest = '.' ; @@ -210,6 +216,9 @@ ToString( double dVal, int nPrec) *pDest = '\0' ; } + if ( pnErr != nullptr) + *pnErr = nErr ; + if ( szDest[0] == '-' && szDest[1] == '0' && szDest[2] == '\0') return "0" ; else