Statalist


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

Re: AW: st: AW: Keeping trailing zeros when formatting a decimal


From   Miranda Kim <[email protected]>
To   [email protected]
Subject   Re: AW: st: AW: Keeping trailing zeros when formatting a decimal
Date   Thu, 01 Oct 2009 14:09:21 +0100

but I use "g" because I'm interested in "2 significant figures" not just 2 decimal places...

For example 0.00040234 I want displayed as 0.00040
0.0326 as 0.033 etc.


My little program goes as follows:

program def numformat, rclass
   args num
   if abs(`num') > 1 {
       return local num = string(round(`num', 0.01), "%9.2f")
   }
   if abs(`num') < 1 & abs(`num') >= 0.0001 {
       return local num = subinstr(string(`num', "%9.2g"), ".", "0.",.)
   }
   if abs(`num') < 0.0001 {
       return local num = "< 0.0001"
   }
end



Martin Weiss wrote:
<> " I want it to display say "-0.22" rather than "-.22", and putting a 0 after the % doesn't seem to work:"


Use "f" instead of "g":


*************
display %3.2f 0.5259
*************



HTH
Martin


-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Miranda Kim
Gesendet: Donnerstag, 1. Oktober 2009 14:55
An: [email protected]
Betreff: Re: st: AW: Keeping trailing zeros when formatting a decimal

For the leading zero issue, I want it to display say "-0.22" rather than "-.22", and putting a 0 after the % doesn't seem to work:
. display %09.2g 0.5259
      .53
but I used:
subinstr(string(-0.22, "%9.2g"), ".", "0.",.)
which does the job.
However I'm still stuck for the trailing zeros...
I use "g" rather than "f" because I am wanting to apply this to many different scales of decimal numbers, whether it be 0.000026789 or 0.23897, and just want to keep 2 significant figures.
My little program goes as follows:

program def numformat, rclass
    args num
    if abs(`num') > 1 {
        return local num = string(round(`num', 0.01), "%9.2f")
    }
    if abs(`num') < 1 & abs(`num') >= 0.0001 {
        return local num = subinstr(string(`num', "%9.2g"), ".", "0.",.)
    }
    if abs(`num') < 0.0001 {
        return local num = "< 0.0001"
    }
end

Martin Weiss wrote:
<>
Most of your problems seem to be due to the fact that you are using "g"
instead of "f" in your formatting directives. See [U], 12.5 for more info.
Leading zeroes can be induced by inserting a zero after the percentage
sign.
Also note that you do not need to use the -string()- function, as
-display-
is able to apply a formatting directive on its own, as seen in the last
row:
*************
di "`=string(-0.000029, "%9.2g")'"
di in red "`=string(-0.000029, "%09.2f")'"

di "`=string(-0.0000201, "%9.2g")'"
di in red "`=string(-0.0000201, "%7.6f")'"

di "`=string(-0.000029, "%9.1g")'"
di in red "`=string(-0.000029, "%09.1f")'"
di in red %09.1f -0.000029
*************



HTH
Martin


-----Ursprüngliche Nachricht-----
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Miranda Kim
Gesendet: Donnerstag, 1. Oktober 2009 13:33
An: [email protected]
Betreff: st: Keeping trailing zeros when formatting a decimal

I would be very grateful for advice on the following basic formatting questions...

To store a number as a string with a format showing 2 significant figures, I do the following, for example:
di "`=string(-0.000029, "%9.2g")'"

If the second significant figure is a zero, how can I make sure this is still displayed?
The following produces:
. di "`=string(-0.0000201, "%9.2g")'"
-.00002
when I want it to display "-0.000020"

Also, how can I make sure it displays the zero before the decimal point?

Also, why does
. di "`=string(-0.000029, "%9.1g")'"
-.000029
not show only 1 significant figure?

Many thanks for your help.


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



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



*
*   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index