Hi:
One way, without using ANNOTATE to format the percent, is to "precalculate" the percent and either use a PERCENT format to round to one decimal place or multiply your precalculated percent by 100 and then use a PICTURE format. This means that you will need to use the SUMVAR= option instead of TYPE=PERCENT.
See the code below, which uses a dataset created by PROC REPORT (although you could have used other procedures) from SASHELP.CLASS.
cynthia
[pre]
title;
ods listing;
proc report data=sashelp.class nowd out=work.ageout;
column age n pctn mypct;
define age /group 'Age';
define n / 'Count';
define pctn / 'Percent';
define mypct/computed;
compute mypct;
mypct = round(100*pctn,.1);
endcomp;
run;
proc print data=work.ageout;
run;
proc gchart data=ageout;
Title '1) Use WORK.AGEOUT, PCTN var, PERCENT Format and NOHEADING option';
pie age / discrete type=sum sumvar=pctn noheading;
format pctn percent8.1;
run;
quit;
proc format;
picture mypc low-high="009.9%";
run;
proc gchart data=ageout;
Title '2) Use WORK.AGEOUT, MYPCT var, Picture Format and NOHEADING option';
pie age / discrete type=sum sumvar=mypct noheading;
format mypct mypc.;
run;
quit;
** Original Using SASHELP.CLASS;
proc gchart data=sashelp.class;
title '3) Use SASHELP.CLASS, TYPE=PERCENT, Compare to Previous';
pie age / discrete type=percent noheading;
run;
quit;[/pre]