Hello,

Consider this program, strtod.c:

    #include <stdlib.h>
    #include <stdio.h>

    int main()
    {
        printf("%lf\n", strtod("283686952306183", NULL));
    }

With current musl master from Git:

    $ musl-gcc -static strtod.c -o a.musl
    $ ./a.musl
    283686952306176.000000

By comparison, with glibc:

    $ gcc -static strtod.c -o a.glibc
    $ ./a.glibc
    283686952306183.000000

The correct binary representation of this float is

    0x42f0203040506070

but musl strtod produces

    0x42f0203040506000

i.e., it fails to set the LSB. I examined this while ruling out printf as the cause.