Corretta round

git-svn-id: svn://10.65.10.50/trunk@2583 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-02-08 15:47:48 +00:00
parent d8eeddba98
commit aeff220d55

View File

@ -187,7 +187,12 @@ real& real::round (
p = ipow10(prec); p = ipow10(prec);
_dec *= p; _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) if (prec != 0)
_dec /= p; _dec /= p;
@ -926,7 +931,7 @@ const real& fnc_min (
const real& fnc_max ( const real& fnc_max (
const real & a, // @parm Primo numero da confrontare const real & a, // @parm Primo numero da confrontare
const real & b) // @parm Secondo 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 // @parm long double | b | Secondo numero da confrontare
// @syntax const real& fnc_max (const real & a, const real & b) // @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 // @func Ritorna la radice quadrata del numero
real sqrt ( real sqrt (
const real & a) // @parm Numero del quale calcolare la radice 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 real sqrt (const real)
// @syntax long double sqrt(long double) // @syntax long double sqrt(long double)
@ -989,8 +994,8 @@ real exp10 (
real pow ( real pow (
const real & a, // @parm Numero da elevare a potenza const real & a, // @parm Numero da elevare a potenza
const real & b) // @parm Esponente const real & b) // @parm Esponente
// @parm long double | a | Numero da elevare a potenza // @parm long double | a | Numero da elevare a potenza
// @parm long double | b | Esponente // @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) // @syntax long double pow(long double a, long double b)
@ -1005,7 +1010,7 @@ real pow (
// @func Calcola e (nepero) elevato ad <p a> // @func Calcola e (nepero) elevato ad <p a>
real exp ( real exp (
const real & a) // @parm Esponente 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) // @syntax long double exp(long double a)
@ -1020,7 +1025,7 @@ real exp (
// @func Calcola il logaritmo in base 10 del numero // @func Calcola il logaritmo in base 10 del numero
real log10 ( real log10 (
const real & a) // @parm Numero del quale calcolare il logaritmo 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 real log10 (const real & a)
// @syntax long double log10(long double a) // @syntax long double log10(long double a)
@ -1050,7 +1055,7 @@ real log (
// @func Calcola il seno dell'angolo // @func Calcola il seno dell'angolo
real sin ( real sin (
const real & a) // @parm Angolo passato in radianti 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 real sin (const real & a)
// @syntax long double sin (long double 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 // @mfunc Normalizza il segno o la sezione in base al parametro s
const TImporto& TImporto::normalize( const TImporto& TImporto::normalize(
char s) // @parm Tipo di normalizzazione da effettuare: char s) // @parm Tipo di normalizzazione da effettuare:
// //
// @flag A | Forza la sezione Avere // @flag A | Forza la sezione Avere
// @flag D | Forza la sezione Dare // @flag D | Forza la sezione Dare
// @flag <gt>0 | Forza il segno negativo // @flag <gt>0 | Forza il segno negativo
// @flag <lt>=0 | Forza il segno positivo // @flag <lt>=0 | Forza il segno positivo
{ {
bool ex = FALSE; bool ex = FALSE;