Dear Eric,
Internally the coordinates are stored as floats, so the number of digits is dependent on the machine representation and the operations that have taken place. When written to a GDS file, the xy-coordinates are changed to integers with the least significant digit representing (typically) 1 nm, so three digits when converted to microns.
Just printing the node or pin information just shows a string representation of that object, and the number of digits is not necessarily the same as the internal representation.
See this example:
import nazca as nd
s = nd.strt(length=10).put(1.23456789, 1.23456789, 1.23456789)
print(s.pin['a0'])
print(s.pin['a0'].xya())
which prints
<Node(id=12, name='straight_2_a0_1') object in cell 'straight_2', xs='None', width =1.0, xya=(1.235, 1.235, 181.235), remark='None'>
(1.23456789, 1.23456789, 181.23456789000002)
clearly with more digits.
Xaveer