@mbtaylor - my comments were colored toward the specific use cases of Topcat and ds9.  I'm assuming that any file format which can be read (via the standard UI) is also acceptable for a SAMP broadcast since ultimately it's just reading the file.  For a quick proof of concept I just changed the code here to use FITS instead of votable and it does work and preserve precision.  However I see the point that votable might work better in general when it comes to metadata.

It's also true that part of the issue here is exactly how `astropy.io.votable` represents floats.  In #856 it was changed from `%g` to `%s` for votable.  What might be better for floats is `repr()` which I think will always give full precision, but maybe this causes some different problem (comment @mdboom?)   I note that at least Topcat seems to output full precision when sending a votable back to astropy.