Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


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

Re: st: Stata cannot do math?


From   Maarten Buis <maartenlbuis@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Stata cannot do math?
Date   Thu, 19 May 2011 12:34:40 +0200

On Thu, May 19, 2011 at 12:25 PM, Ronan Conroy <rconroy@rcsi.ie> wrote:
> I have a basic puzzle, which has just occurred to me: Stata cannot find any observations that satisfy the condition
>
> count if a == 100.1
>
> we know that Stata is representing the contents of the variable a as an inexact binary representation of 100.1, but why does it not represent the right hand argument in exactly the same way, causing the two to be equal? How does Stata represent the quantity 100.1 when it evaluates the expression a == 100.1?

It stores those numbers as doubles, so you can either create your
variable as a double or turn 100.1 into a float to make sure that the
comparison works:

*-------- begin example ---------
set obs 1
gen a = 100.1
gen double b = 100.1

count if a == 100.1
count if a == float(100.1)
count if b == 100.1
*------------ end example ----------

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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index