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