Are you perhaps running this on a computer where the language settings specify the comma “,” as the decimal separator instead of the dot “.” that’s commonly used in English?
If that’s the case, it’s possible that the parsing routine is stopping at the dot because it does not recognize it as a valid character in a double number, and returns the truncated value.
If that turns out to be the problem, I think that JUCE should make sure to write and read numbers always in the same format (probably with the dot) regardless of locale settings, because that could be a problem when exchanging XML between computers with different localizations.
I remember that was an issue at the times of JUCE 1.xx, but I think that was fixed somehow in following versions (at least for Mac and Windows, which are the platforms that I build).
Maybe this is still an issue on Linux, I have never built for that platform.
@tom perhaps adding a unit test for this could be useful (simply check that a certain piece of XML parses to the correct decimal value), just in case to avoid regressions?