That seems strange. When I create a diagram with a single node at x=5.0 and y=5.0, save that diagram in GraphML format, open the GraphML file, modify the diagram in a way that does not affect the existing node, and save the modified diagram once more, the coordinates of the original node are still x=5.0 and y=5.0 in the new GraphML file.
Values like x=4.9998989889798798732948729384734 occur due to rounding errors. While rounding errors cannot be prevented, these only occur if an actual calculation is performed. Simply loading a file will not do that.
Are you maybe doing more than just loading the file?
By the way, x=4.9998989889798798732948729384734 is a bit too precise for a textual representation of a double-precision floating point number. (It is not possible to store that much precision in a 52-bit mantissa.)