We can use the format command to tell
Stata that we would like it to display the values with 9 values before the decimal place,
and with no values after the decimal, as shown below. This way we can clearly see
the values for id and we can see that the ID values were not stored
properly.

If we use the describe command, we can
see that Stata stored this value with the type float. The problem
is that a float can only store an integer value with up to 7 digits of
accuracy (but our id values were 9 digits).

If you are storing an identification number (like we
are), we need our values to be stored with perfect accuracy. If your variable
contains just whole numbers (like our id) variable and is up to 9 digits,
you can store it as a long integer, or if it can be up to 16 digits, you
can store it as a double. If your identification variable was over
16 digits long, you could store the variable as a string variable without any loss of
precision (but you would not be able to do any numerical computations with it).

Here is an example showing how to read the variable id
as a long integer.