Modifica 95/34

Aggiunto il metodo trail che toglie gli zeri non significativi


git-svn-id: svn://10.65.10.50/trunk@1859 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
pirro 1995-09-20 10:03:09 +00:00
parent 0eb80acad6
commit 7f82dc354e
2 changed files with 20 additions and 4 deletions

View File

@ -30,10 +30,15 @@ real::real (double a)
{ {
dftodr (ptr (), a, 9); // Round the number (1.0 is NOT 0.999999999) dftodr (ptr (), a, 9); // Round the number (1.0 is NOT 0.999999999)
deltrz (ptr (), ptr ()); // Delete Trailing zeroes trail( ); // Delete Trailing zeroes
} }
void real::trail( )
{
deltrz (ptr (), ptr () ); // Delete Trailing zeroes
}
char *real::eng2ita (char *s) char *real::eng2ita (char *s)
{ {
if (s) if (s)
@ -147,6 +152,7 @@ real & real::operator -= (const real & b)
real & real::operator *= (const real & b) real & real::operator *= (const real & b)
{ {
dmul (ptr (), ptr (), b.ptr ()); dmul (ptr (), ptr (), b.ptr ());
trail( );
return *this; return *this;
} }
@ -161,7 +167,7 @@ real & real::operator /= (const real & b)
error_box ("Division error: %s", __string); error_box ("Division error: %s", __string);
} }
#endif #endif
trail( );
return *this; return *this;
} }
@ -225,7 +231,7 @@ char *real::string (
if (dec != UNDEFINED) if (dec != UNDEFINED)
__tmp_real.round (dec); __tmp_real.round (dec);
else else
deltrz (__tmp_real.ptr (), __tmp_real.ptr ()); __tmp_real.trail();
dtoa (__string, __tmp_real.ptr ()); dtoa (__string, __tmp_real.ptr ());
int lun = strlen (__string); int lun = strlen (__string);
@ -606,6 +612,7 @@ real operator *(
{ {
dmul (__tmp_real.ptr (), a.ptr (), b.ptr ()); dmul (__tmp_real.ptr (), a.ptr (), b.ptr ());
__tmp_real.trail( );
return __tmp_real; return __tmp_real;
} }
@ -613,6 +620,7 @@ real operator *(double a, const real & b)
{ {
muldfd (__tmp_real.ptr (), b.ptr (), a); muldfd (__tmp_real.ptr (), b.ptr (), a);
__tmp_real.trail( );
return __tmp_real; return __tmp_real;
} }
@ -620,6 +628,7 @@ real operator *(const real & a, double b)
{ {
muldfd (__tmp_real.ptr (), a.ptr (), b); muldfd (__tmp_real.ptr (), a.ptr (), b);
__tmp_real.trail( );
return __tmp_real; return __tmp_real;
} }
@ -636,6 +645,7 @@ real operator / (
// @syntax operator /(const real &a, double b); // @syntax operator /(const real &a, double b);
{ {
ddiv (__tmp_real.ptr (), a.ptr (), b.ptr ()); ddiv (__tmp_real.ptr (), a.ptr (), b.ptr ());
__tmp_real.trail( );
return __tmp_real; return __tmp_real;
} }
@ -644,6 +654,7 @@ real operator / (double a, const real & b)
{ {
__tmp_real = a; __tmp_real = a;
ddiv (__tmp_real.ptr (), __tmp_real.ptr (), b.ptr ()); ddiv (__tmp_real.ptr (), __tmp_real.ptr (), b.ptr ());
__tmp_real.trail( );
return __tmp_real; return __tmp_real;
} }
@ -652,6 +663,7 @@ real operator / (const real & a, double b)
{ {
__tmp_real = b; __tmp_real = b;
ddiv (__tmp_real.ptr (), a.ptr (), __tmp_real.ptr ()); ddiv (__tmp_real.ptr (), a.ptr (), __tmp_real.ptr ());
__tmp_real.trail( );
return __tmp_real; return __tmp_real;
} }

View File

@ -44,6 +44,10 @@ protected:
// @access Public Member // @access Public Member
public: public:
// @cmember Rimuove gli zeri prima della virgola, aggiustando la precisione
void trail( );
// @cmember Trasforma un numero dal formato inglese (decimali con punto) in // @cmember Trasforma un numero dal formato inglese (decimali con punto) in
// formato italiano (decimali con virgola) // formato italiano (decimali con virgola)
static char* eng2ita(char* s); static char* eng2ita(char* s);