Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Kieran McCaul <kieran.mccaul@uwa.edu.au> |
To | "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |
Subject | st: RE: Problems rounding a variable using round() |
Date | Sun, 25 Mar 2012 12:57:06 +0800 |
This is a precision problem. Try: count if y == float(0.6) -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of L S Sent: Sunday, 25 March 2012 12:03 PM To: statalist@hsphsun2.harvard.edu Subject: st: Problems rounding a variable using round() Hi, I am creating a variable that is the average of 5 0/1 variables. However, instead of taking values on {0,.2,.4.6,.8,1}, it is taking values like .40000001 and .60000002. I tried to use the round() command as below, but it's not working. Any thoughts on how I can make y take on the values {0,.2,.4.6,.8,1}? Thank you. clear set obs 1000 set seed 1234 forvalues i=1/5{ gen x`i'=(uniform()>.5) } gen y = (1/5)*(x1+x2+x3+x4+x5) * browse y count if y==.6 replace y= round(y,.1) count if y==.6 * * 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/ * * 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/