!= 1 correctly and more than one digit before decimal point..
This commit is contained in:
Ulrich Drepper 1999-10-30 04:34:35 +00:00
parent 2aa562e8c7
commit 6491b8094e
3 changed files with 15 additions and 2 deletions

View File

@ -3,7 +3,7 @@
* stdlib/tst-strtod.c: Add more hexadecimal tests.
* stdlib/strtod.c: Handle hexadecimal numbers with leading digit
!= 1 correctly.
!= 1 correctly and more than one digit before decimal point..
1999-10-27 Andreas Jaeger <aj@suse.de>

View File

@ -824,7 +824,7 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
}
/* Adjust the exponent for the bits we are shifting in. */
exponent += bits - 1;
exponent += bits - 1 + (int_no - 1) * 4;
while (--dig_no > 0 && idx >= 0)
{

View File

@ -43,6 +43,19 @@ static const struct ltest tests[] =
{ "0xAp0", 10.0, '\0', 0 },
{ "0x0Ap0", 10.0, '\0', 0 },
{ "0x0A", 10.0, '\0', 0 },
{ "0xA0", 160.0, '\0', 0 },
{ "0x0.A0p8", 160.0, '\0', 0 },
{ "0x0.50p9", 160.0, '\0', 0 },
{ "0x0.28p10", 160.0, '\0', 0 },
{ "0x0.14p11", 160.0, '\0', 0 },
{ "0x0.0A0p12", 160.0, '\0', 0 },
{ "0x0.050p13", 160.0, '\0', 0 },
{ "0x0.028p14", 160.0, '\0', 0 },
{ "0x0.014p15", 160.0, '\0', 0 },
{ "0x00.00A0p16", 160.0, '\0', 0 },
{ "0x00.0050p17", 160.0, '\0', 0 },
{ "0x00.0028p18", 160.0, '\0', 0 },
{ "0x00.0014p19", 160.0, '\0', 0 },
{ NULL, 0, '\0', 0 }
};