Corretta setdec nel caso di reali senza decimali

git-svn-id: svn://10.65.10.50/trunk@712 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1994-12-02 13:04:07 +00:00
parent eb9ed8599b
commit d7aec9b15e

View File

@ -524,92 +524,90 @@ Se si utilizza spiegarne dettagliatamente il motivo.
int dec; /* numero di decimali che deve avere il numero */
{
char *s1;
int i, l, carry;
if (LENGTH(s) == 0) strcpy(s, "0");
if ((s1 = strchr(s, ',')) != NULL) *s1 = '.';
s1 = strchr(s, '.');
if ((dec) && (s1 == NULL))
char *s1;
int i, l, carry;
if (LENGTH(s) == 0) strcpy(s, "0");
if ((s1 = strchr(s, ',')) != NULL) *s1 = '.';
s1 = strchr(s, '.');
if ((dec) && (s1 == NULL))
{
strcat(s, ".");
s1 = strchr(s, '.');
}
else
if (!dec)
{
if (s1 == NULL) return ;
l = LENGTH(s1); /* occhio verificare */
carry = (s1[1] >= '5');
*s1 = '\0';
while (carry)
{
s1--;
if (*s1 == '-') break;
if (*s1 == '9')
{
strcat(s, ".");
s1 = strchr(s, '.');
*s1 = '0';
if (s == s1) break;
}
else
if (!dec)
{
l = LENGTH(s1); /* occhio verificare */
if (s1 != NULL)
{
carry = (s1[1] >= '5');
*s1 = '\0';
while (carry)
{
s1--;
if (*s1 == '-') break;
if (*s1 == '9')
{
*s1 = '0';
if (s == s1) break;
}
else
{
(*s1)++;
carry = FALSE;
}
}
if (carry)
{
for (i = l; i > (*s1 == '-'); i--) s[i] = s[i - 1];
s[(*s1 == '-')] = '1';
}
}
return;
}
s1++;
l = LENGTH(s1);
if (l > dec)
{
carry = (s1[dec] >= '5');
s1[dec] = '\0';
while (carry)
{
dec--;
if (s1[dec] == '9')
{
s1[dec] = '0';
if (!dec) break;
}
else
{
s1[dec]++;
carry = FALSE;
}
}
s1--;
while (carry)
{
s1--;
if (*s1 == '-') break;
if (*s1 == '9')
{
*s1 = '0';
if (s == s1) break;
}
else
{
(*s1)++;
carry = FALSE;
}
}
if (carry)
{
for (i = l; i > (*s1 == '-'); i--) s[i] = s[i - 1];
s[(*s1 == '-')] = '1';
}
{
(*s1)++;
carry = FALSE;
}
else
while (l++ < dec) strcat(s1, "0");
}
if (carry)
{
for (i = l; i > (*s1 == '-'); i--) s[i] = s[i - 1];
s[(*s1 == '-')] = '1';
}
return;
}
s1++;
l = LENGTH(s1);
if (l > dec)
{
carry = (s1[dec] >= '5');
s1[dec] = '\0';
while (carry)
{
dec--;
if (s1[dec] == '9')
{
s1[dec] = '0';
if (!dec) break;
}
else
{
s1[dec]++;
carry = FALSE;
}
}
s1--;
while (carry)
{
s1--;
if (*s1 == '-') break;
if (*s1 == '9')
{
*s1 = '0';
if (s == s1) break;
}
else
{
(*s1)++;
carry = FALSE;
}
}
if (carry)
{
for (i = l; i > (*s1 == '-'); i--) s[i] = s[i - 1];
s[(*s1 == '-')] = '1';
}
}
else
while (l++ < dec) strcat(s1, "0");
}
/*