
Using 100 tests with nextafter, starting with the value you found faulty, I find 38 failures (all one bit wrong on input) - about the one third I found in previous tests.
Oh shucks: I wonder would this be solved by using the solution I often see in the literature when an author wants to give a binary floating point value exactly: which is to represent it as an integer + a base 2 exponent. Values in that form can be serialised/deserialised exactly using ldexp/frexp, but unfortunately aren't very human readable (or rather are open to mis-interpretation because the exponent is a power of 2 not 10). This format is similar to the "A" format specifier in the C99 version of printf, and I believe the code is quite simple as well BTW, John.