aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-30 04:34:35 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-30 04:34:35 +0000
commit6491b8094e929133e3eb8793bb6296f69fb54a78 (patch)
tree6168acb3feb54bcf45b3c917e1b8fd57e66926fe /stdlib
parent2aa562e8c7f41bbabb1f80b97927ec2eedbdf639 (diff)
downloadglibc-6491b8094e929133e3eb8793bb6296f69fb54a78.zip
glibc-6491b8094e929133e3eb8793bb6296f69fb54a78.tar.gz
glibc-6491b8094e929133e3eb8793bb6296f69fb54a78.tar.bz2
Update.
!= 1 correctly and more than one digit before decimal point..
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/strtod.c2
-rw-r--r--stdlib/tst-strtod.c13
2 files changed, 14 insertions, 1 deletions
diff --git a/stdlib/strtod.c b/stdlib/strtod.c
index 4a3c8a2..f2ff79f 100644
--- a/stdlib/strtod.c
+++ b/stdlib/strtod.c
@@ -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)
{
diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
index 916f44f..c6a4b09 100644
--- a/stdlib/tst-strtod.c
+++ b/stdlib/tst-strtod.c
@@ -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 }
};