From aeff220d559cb2dca89e336e3a8824ed9c92c84f Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 8 Feb 1996 15:47:48 +0000 Subject: [PATCH] Corretta round git-svn-id: svn://10.65.10.50/trunk@2583 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/real.cpp | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/include/real.cpp b/include/real.cpp index 220a4de36..b20d953d6 100755 --- a/include/real.cpp +++ b/include/real.cpp @@ -187,7 +187,12 @@ real& real::round ( p = ipow10(prec); _dec *= p; } - _dec = floorl(_dec + 0.5); + + if (_dec >= 0.0) + _dec = floorl(_dec + 0.5); + else + _dec = ceill(_dec - 0.5); + if (prec != 0) _dec /= p; @@ -926,7 +931,7 @@ const real& fnc_min ( const real& fnc_max ( const real & a, // @parm Primo numero da confrontare const real & b) // @parm Secondo numero da confrontare - // @parm long double | a | Primo numero da confrontare + // @parm long double | a | Primo numero da confrontare // @parm long double | b | Secondo numero da confrontare // @syntax const real& fnc_max (const real & a, const real & b) @@ -942,7 +947,7 @@ const real& fnc_max ( // @func Ritorna la radice quadrata del numero real sqrt ( const real & a) // @parm Numero del quale calcolare la radice - // @parm long double | a | Numero del quale calcolare la radice + // @parm long double | a | Numero del quale calcolare la radice // @syntax real sqrt (const real) // @syntax long double sqrt(long double) @@ -989,10 +994,10 @@ real exp10 ( real pow ( const real & a, // @parm Numero da elevare a potenza const real & b) // @parm Esponente - // @parm long double | a | Numero da elevare a potenza - // @parm long double | b | Esponente + // @parm long double | a | Numero da elevare a potenza + // @parm long double | b | Esponente -// @syntax real pow (const real & a, const real & b) +// @syntax real pow (const real & a, const real & b) // @syntax long double pow(long double a, long double b) { @@ -1005,9 +1010,9 @@ real pow ( // @func Calcola e (nepero) elevato ad

real exp ( const real & a) // @parm Esponente - // @parm long double | a | Esponente + // @parm long double | a | Esponente -// @syntax real exp (const real & a) +// @syntax real exp (const real & a) // @syntax long double exp(long double a) { @@ -1020,10 +1025,10 @@ real exp ( // @func Calcola il logaritmo in base 10 del numero real log10 ( const real & a) // @parm Numero del quale calcolare il logaritmo - // @parm long double | a | Numero del quale calcolare il logaritmo + // @parm long double | a | Numero del quale calcolare il logaritmo -// @syntax real log10 (const real & a) -// @syntax long double log10(long double a) +// @syntax real log10 (const real & a) +// @syntax long double log10(long double a) { dlog (__tmp_real.ptr (), a.ptr ()); @@ -1050,8 +1055,8 @@ real log ( // @func Calcola il seno dell'angolo real sin ( const real & a) // @parm Angolo passato in radianti - // @parm long double | a | Angolo passato in radianti - + // @parm long double | a | Angolo passato in radianti + // @syntax real sin (const real & a) // @syntax long double sin (long double a) @@ -1576,11 +1581,11 @@ const TImporto& TImporto::swap_section() // @mfunc Normalizza il segno o la sezione in base al parametro s const TImporto& TImporto::normalize( char s) // @parm Tipo di normalizzazione da effettuare: - // - // @flag A | Forza la sezione Avere - // @flag D | Forza la sezione Dare - // @flag 0 | Forza il segno negativo - // @flag =0 | Forza il segno positivo + // + // @flag A | Forza la sezione Avere + // @flag D | Forza la sezione Dare + // @flag 0 | Forza il segno negativo + // @flag =0 | Forza il segno positivo { bool ex = FALSE;