DATA Step, Macro, Functions and more

how to get percentage as 99.9

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 84
Accepted Solution

how to get percentage as 99.9

When I'm using format as 5.1 or 6.1 on z variable , I'm getting 100 percentage in z variable. I need it 99.9 as required output .please someone suggest on it...


data _null_;
x = 2202;
y= 2203;
z=x/y*100;
z1 = put(z,5.1);
put x y z z1= ;
run;


Accepted Solutions
Solution
‎03-11-2018 11:30 AM
SAS Super FREQ
Posts: 9,261

Re: how to get percentage as 99.9

Posted in reply to rajeshalwayswel

Hi:

  A picture format will not round the number. Here's some code to test, a slightly different version of your code.

proc format;
  picture pctnr low-high='099.9';
run;


data nums;
length z2 $5;
x = 2202;
y= 2203;
z=x/y*100;
z1=z;
z2 = put(z,pctnr.);
put x= y= z= z1= z2=;
run;

proc print data=nums label;
var x y z z1 z2;
label z='z uses sas format'
      z1='z1 uses picture custom format'
      z2='z2 is char var using picture format';
format z 5.1 z1 pctnr.;
run;

Cynthia

View solution in original post


All Replies
Solution
‎03-11-2018 11:30 AM
SAS Super FREQ
Posts: 9,261

Re: how to get percentage as 99.9

Posted in reply to rajeshalwayswel

Hi:

  A picture format will not round the number. Here's some code to test, a slightly different version of your code.

proc format;
  picture pctnr low-high='099.9';
run;


data nums;
length z2 $5;
x = 2202;
y= 2203;
z=x/y*100;
z1=z;
z2 = put(z,pctnr.);
put x= y= z= z1= z2=;
run;

proc print data=nums label;
var x y z z1 z2;
label z='z uses sas format'
      z1='z1 uses picture custom format'
      z2='z2 is char var using picture format';
format z 5.1 z1 pctnr.;
run;

Cynthia

Super User
Posts: 9,611

Re: how to get percentage as 99.9

Posted in reply to rajeshalwayswel

Be advised that 99.9 will be mathematically wrong, as 99.954607354 must be rounded up (per definition) if only 1 fractional digit can be displayed.

The more correct method would be to use a 5.2 format in the put() function.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 104 views
  • 4 likes
  • 3 in conversation