# st: data representation

 From [email protected] To [email protected] Subject st: data representation Date Fri, 27 Dec 2002 10:25:57 -0400

```K.I. , I hope this is useful to get a solution for your problem.

Type help datatypes to get the following info:

Precision of numeric storage types

floats have about 7 digits of accuracy; the magnitude of the number does not
matter.
Thus, 1234567 can be stored perfectly as a float, as can 1234567e+20.  The
number
123456789, however, would be rounded to 123456792.  In general, this rounding
does not
matter.

If you are storing identification numbers, however, the rounding could matter.
If the
identification numbers are integers and take 9 digits or less, store them as
longs;
otherwise, store them as doubles.  doubles have 16 digits of accuracy.

Stata stores numbers in binary and this has a second effect on numbers less than
1.  1/10
has no perfect binary representation just as 1/11 has no perfect decimal
representation.
In float, .1 is stored as .10000000149011612.  Note that there are 7 digits of
accuracy,
just as with numbers larger than 1.  Stata, however, performs all calculations
in double
precision.  If you were to store 0.1 in a float called x and then ask, say,
"list if
x==.1", there would be nothing in the list.  The .1 that you just typed was
converted to
double, with 16 digits of accuracy (.100000000000000014...) and that number is
never equal
to 0.1 stored with float accuracy.

One solution is to type "list if x==float(.1)".  The float() function rounds its
argument
to float accuracy; see help functions.  The other alternative would be store
double, but this is probably a waste of memory.  Few people have data that is
accurate to
1 part in 10 to the 7th.  Among the exceptions are banks, who keep records
accurate to the
penny on amounts of billions of dollars.  If you are dealing with such financial
data,
store your dollar amounts as doubles.  See [U] 16.10 Precision and problems
therein.

Also see

Manual:  [U] 15 Data,
[U] 16.10 Precision and problems therein,
[R] data types
On-line:  help for compress, encode, format, recast

My best regards,

Marcelo

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```