SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.

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;

1 ACCEPTED SOLUTION

Accepted Solutions
Cynthia_sas
SAS Super FREQ

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

2 REPLIES 2
Cynthia_sas
SAS Super FREQ

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

Kurt_Bremser
Super User

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.

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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