Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: RE: RE: Stored decimals


From   "David Harrison" <[email protected]>
To   <[email protected]>
Subject   st: RE: RE: RE: Stored decimals
Date   Wed, 1 Mar 2006 16:00:25 -0000

If you read the FAQ that Nick pointed you to, it would explain that a
computer (working in binary) cannot store _exactly_ a number with 1
decimal place. The number 3.1 has no exact representation in binary, in
the same way that the number 1/3 has no exact representation in decimal.

The FAQ explains how to deal with this.

David

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Siyam, Amani
Sent: 01 March 2006 15:39
To: [email protected]
Subject: st: RE: RE: Stored decimals

Dear Nick,

Thanks for your reply. I want to store the variable "tweight" as a
variable with only 1 decimal place. 

If you consider:

	gen tweight=weight/10

without any rounding or formatting, "weight" is an integer ranging from
15 to 807 therefore "tweight" will be a real ranging from 1.5 to 80.7 as
a 3-digit number with 1 decimal place.

When I save my data file after the command above, the content of
"tweight" is as the example shows:

True tweight	Stata-stored tweight
3.0			3.0
3.1			3.0999999
3.2			3.2		
3.3			3.3000002
3.4			3.4000001
3.5			3.5
3.6			3.5999999
3.7			3.7
3.8			3.8	
3.9			3.9000001

Sorry I might be missing a minor point here but I am looking for a
command or function to generate and store "tweight" exactly as a 1
decimal place variable. 

Thanks very much.

Amani



-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Nick Cox
Sent: 01 March 2006 14:04
To: [email protected]
Subject: st: RE: Stored decimals

You shouldn't need to -round(,)-. This is a standard precision issue
(-search precision, faq-) and the presentation problem should be soluble
using -format-. 

Thus we need to know in what sense that "doesn't work". 

Nick
[email protected] 

Siyam, Amani
 
> I am dealing with survey data that avails children weights in kgs (int

> %8.0g). The way the weight variable is provided is without decimal 
> places as a three digit number, the last digit representing the 1st 
> decimal place, that is the variable has to be divided by 10 before it 
> can be used for the necessary calculations.
> 
> I used the command:
> 
> 	gen  tweight=weight/10
> 
> The way the variable "tweight" is stored is critical to the subsequent

> user of my programme and rather annoying because I don't understand 
> where the extra decimal places are coming from.  Below is an example 
> of the pattern of how the 1 decimal place
> 
> DHS weight		 True tweight		Stata-stored tweight
> 30				3.0			3.0
> 31				3.1			3.0999999
> 32				3.2			3.2		
> 33				3.3			3.3000002
> 34				3.4			3.4000001
> 35				3.5			3.5
> 36				3.6			3.5999999
> 37				3.7			3.7
> 38				3.8			3.8	
> 39				3.9			3.9000001
> 
> When you summarise the variable tweight, it neatly displays as a 
> 1-decimal place variable.
> 
>     Variable |       Obs        Mean    Std. Dev.       Min        Max
> -------------+--------------------------------------------------------
>      tweight |      2686    8.617238    3.959973        1.5       80.7
> 
> I tried the common formatting commands but none seem to be working:
> 
> 	gen float tweight=weight
> 	repl tweight=round(tweight, 0.1)
> 	format tweight %9.1f
> 

*
*   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/

*
*   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/

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________

*
*   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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index