
Actually, I don't know. The issue currently occurs with text/xml archives. stream output is used to write floats/doubles to he stream. This was based on the assumption that an input stream could read anything an output stream from the same library implementation might write. This turns out not to be the case for at least some standard library implementation. This was discovered for some library (VC 7.1) I'm not sure whether a pair of stream implementations are required to beable to do this or not.
I believe they should round-trip correctly, it's certainly possible to do lossless base-2 to base-10 to base-2 round tripping. However, I've reported a bug to one vendor (Intel/Linux, now fixed) when this didn't occur correctly, so these kinds of problems certainly can occur :-( I don't know what you can do about though, except point at the std lib vendor responsible and say "blame them". :-( John.