There's two ways to represent numeric values in dBase, floating point and scientific notation.
It's not possible to encode values in either without running into precision issues, and SciNot
has a much larger range.
I don't trust double precision past 12 places, so I wouldn't consider this a bug; it's just
a manifestation of one of the many reasons shapefiles are not reliable as a spatial data
transfer format.
There are a number of ways to retain the value of your IDs that are transfer-safe, but
all of them involve converting the values into strings (base16, base32, base48,...)
- V