patch from GvG, it fixing the bug for calc = when it showing e-309, Bug 1195, it have even affected python and other apps trying writing out 0 as text string.

svn path=/trunk/; revision=20594
This commit is contained in:
Magnus Olsen 2006-01-05 22:54:30 +00:00
parent 431acd850f
commit 4c8bd8da77
2 changed files with 28 additions and 8 deletions

View file

@ -211,10 +211,20 @@ static int numberf(FILE * f, double __n, char exp_sign, int size, int precision
n.__n = &__n;
if ( exp_sign == 'g' || exp_sign == 'G' || exp_sign == 'e' || exp_sign == 'E' ) {
ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
exponent = ie/3.321928;
}
if ( exp_sign == L'g' || exp_sign == L'G' || exp_sign == L'e' || exp_sign == L'E' )
{
if ( 0 == n.n->mantissal && 0 == n.n->mantissah && 0 == n.n->exponent )
{
ie = 0;
}
else
{
ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
}
exponent = ie/3.321928;
}
if ( exp_sign == 'g' || exp_sign == 'G' ) {
type |= ZEROTRUNC;

View file

@ -210,10 +210,20 @@ static int numberf(FILE * f, double __n, wchar_t exp_sign, int size, int precis
n.__n = &__n;
if ( exp_sign == L'g' || exp_sign == L'G' || exp_sign == L'e' || exp_sign == L'E' ) {
ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
exponent = ie/3.321928;
}
if ( exp_sign == L'g' || exp_sign == L'G' || exp_sign == L'e' || exp_sign == L'E' )
{
if ( 0 == n.n->mantissal && 0 == n.n->mantissah && 0 == n.n->exponent )
{
ie = 0;
}
else
{
ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
}
exponent = ie/3.321928;
}
if ( exp_sign == L'g' || exp_sign == L'G' ) {
type |= ZEROTRUNC;