A custom struct conveys information to those applications that have the struct compiled-in (assuming C). A string version of the same struct data also works for those applications that would know the struct, but is also useful to a whole bunch of other tools. Yeah, there's round-off errors for floating point numbers I suppose, but the trade-off seems like infinite to approximately zero, no?