Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: precision Problem taking string from double var


From   Maarten buis <[email protected]>
To   [email protected]
Subject   Re: st: precision Problem taking string from double var
Date   Fri, 29 Oct 2010 11:44:19 +0100 (BST)

--- On Fri, 29/10/10, [email protected] wrote:
> yesterday I ran into a severe error caused by some
> precision(?) problem with a double var.
> I know what happened but not how it happened and I'm
> wondering how to avoid this in future.
> 
> 
> I use record linkage software which creates Stata output
> files. The linkage score is stored in a double var. 
> I don't need that precision (two decimal places are enough,
> but I can't change this)

When you want to store an number exactly then it is usualy 
best to store them as integers. Given that you want to keep 
the score with two decimal placed, I would just create a new 
variable of type long which contained the original variable 
multiplied  by 100, and rounded to the closes integer.

*------------------- begin example -------------------
// open dataset and create a non-integer variable
sysuse auto, clear
gen weight2 = weight * .0045359237 
label var weight2 "weight (100 kg)"

// We want to store weight in kg exactly
gen long w_kg = round(100*weight2)
*--------------- end example ----------------------
(For more on examples I sent to the Statalist see: 
http://www.maartenbuis.nl/example_faq )

Hope this helps,
Maarten

--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany

http://www.maartenbuis.nl
--------------------------


      

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index