Cannot index UVs by [0]/[1] or .x/.y (broken coordinates in python!)
That's not specifically a blender issue, it is showing the inaccuracy of representing a decimal number in binary storage. The python docs have a page explaining the issue and show some ways around it, the best is probably using format() which replaces the older '%.3g' % val style. 

&gt;&gt;&gt; val = 0.1 + 0.2
&gt;&gt;&gt; print(val)
0.30000000000000004
&gt;&gt;&gt; print('{:.3g}'.format(val)) # '.3g' will give 3 significant digits
0.3


While python has the decimal module to better support decimal numbers, it doesn't help when working with blender's data.