Sorry to burst your bubble, but you cannot get 16 digits of precision for Blender vertex positions. Inside Blender, all coordinates are represented with C “float” type (6 digits of precision), not “double” type (16 digits of precision). Python, which you are using in the api, using doubles for all of its non-integer numbers. So when you do sqrt(2) in Python you indeed get that value to 15 digits of precision. But if you assign it to a vertex coordinate and then read it back into Python it well get truncated to 6 digits (about) of precision, and then when it comes back out into a double, you get a different value. I just tried this:
>>> me.vertices[0]
bpy.data.meshes['Cube'].vertices[0]
>>> me.vertices[0].co
Vector((1.0, 1.0, 1.0))
>>> me.vertices[0].co = Vector((1.0, 1.0, sqrt(2)))
>>> me.vertices[0].co
Vector((1.0, 1.0, 1.4142135381698608))
>>> sqrt(2)
1.4142135623730951
Don’t be deceived by the fact that the coordinate of the Vector has digits that goes beyond 6 – that is spurious looking precision caused by converting from binary to decimal.
It is very fundamental throughout a large amount of Blender’s C code that coordinates are floats, and while there are occasional threads discussing changing this to double, that is unlikely to happen at this time (there are a bunch of cons to balance out the pros).