Aggiunto metodo floor
git-svn-id: svn://10.65.10.50/trunk@3922 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
337c8d45bc
commit
41971bc0a3
@ -214,6 +214,21 @@ real& real::ceil (int prec)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real& real::floor (int prec)
|
||||||
|
{
|
||||||
|
long double p = 1.0;
|
||||||
|
if (prec != 0)
|
||||||
|
{
|
||||||
|
p = ipow10(prec);
|
||||||
|
_dec *= p;
|
||||||
|
}
|
||||||
|
_dec = floorl(_dec);
|
||||||
|
if (prec != 0)
|
||||||
|
_dec /= p;
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
real& real::trunc(int prec)
|
real& real::trunc(int prec)
|
||||||
{
|
{
|
||||||
long double p = 1.0;
|
long double p = 1.0;
|
||||||
@ -568,7 +583,7 @@ real & real ::ceil (int prec)
|
|||||||
|
|
||||||
DEC integer;
|
DEC integer;
|
||||||
dint (&integer, ptr ()); // Extract the integer part
|
dint (&integer, ptr ()); // Extract the integer part
|
||||||
|
|
||||||
if (disgt (ptr (), &integer)) // If positive ...
|
if (disgt (ptr (), &integer)) // If positive ...
|
||||||
addid (ptr (), &integer, 1); // ... add 1
|
addid (ptr (), &integer, 1); // ... add 1
|
||||||
else
|
else
|
||||||
@ -581,6 +596,30 @@ real & real ::ceil (int prec)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real & real ::floor (int prec)
|
||||||
|
{
|
||||||
|
double p = 1.0;
|
||||||
|
if (prec != 0)
|
||||||
|
{
|
||||||
|
p = ::pow (10.0, -prec);
|
||||||
|
divdfd (ptr (), ptr (), p);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEC integer;
|
||||||
|
dint (&integer, ptr ()); // Extract the integer part
|
||||||
|
|
||||||
|
if (dislt (ptr (), &integer)) // If negative ...
|
||||||
|
addid (ptr (), &integer, -1); // ... subtract 1
|
||||||
|
else
|
||||||
|
dcpy(ptr(), &integer); // If positive
|
||||||
|
|
||||||
|
if (prec != 0)
|
||||||
|
muldfd (ptr (), ptr (), p);
|
||||||
|
|
||||||
|
trail();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
real & real ::trunc (int prec)
|
real & real ::trunc (int prec)
|
||||||
{
|
{
|
||||||
dtrunc (ptr (), ptr (), prec);
|
dtrunc (ptr (), ptr (), prec);
|
||||||
|
@ -74,6 +74,8 @@ public:
|
|||||||
real& trunc(int prec = 0) ;
|
real& trunc(int prec = 0) ;
|
||||||
// @cmember Arrotonda al numero successivo (della precisione passata)
|
// @cmember Arrotonda al numero successivo (della precisione passata)
|
||||||
real& ceil(int prec = 0);
|
real& ceil(int prec = 0);
|
||||||
|
// @cmember Arrotonda al numero precedente (della precisione passata)
|
||||||
|
real& floor(int prec = 0);
|
||||||
// @cmember Assegna un reale
|
// @cmember Assegna un reale
|
||||||
real& operator = (const real& a);
|
real& operator = (const real& a);
|
||||||
// @cmember Assegna un reale
|
// @cmember Assegna un reale
|
||||||
@ -207,6 +209,8 @@ public:
|
|||||||
real& trunc(int prec = 0) ;
|
real& trunc(int prec = 0) ;
|
||||||
// @cmember Arrotonda al numero successivo (della precisione passata)
|
// @cmember Arrotonda al numero successivo (della precisione passata)
|
||||||
real& ceil(int prec = 0);
|
real& ceil(int prec = 0);
|
||||||
|
// @cmember Arrotonda al numero precedente (della precisione passata)
|
||||||
|
real& floor(int prec = 0);
|
||||||
// @cmember Assegna un reale
|
// @cmember Assegna un reale
|
||||||
real& operator =(double a);
|
real& operator =(double a);
|
||||||
// @cmember Assegna un reale (passato per indirizzo)
|
// @cmember Assegna un reale (passato per indirizzo)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user