## Saving formatted numbers at text

Solved
Frequent Contributor
Posts: 75

# Saving formatted numbers at text

Gday,

I'm not sure if I really need to save a format as text however, it's the only solution I can think of right now.  I just don't know how to do it.

I want the following table (it will only ever have four lines):

 Income Success Jan-12 831.59 1.751% Jan-11 923.87 1.759% Change 11.10% 0.47%

^^

The first two records is in my data.  The third record is the percentage difference between the above two records (Success and Income are both formatted numbers) .  I can do that, however I want to maintain the formats.

Obviously the percentage difference will be fine for Success (although the number of decimal places would be quite right, I could probably live with it) but what about Income?  This is why I think I need to convert these values into text.

How would I do that?

Thanks.

Accepted Solutions
Solution
‎02-15-2012 01:55 AM
Super User
Posts: 8,111

## Saving formatted numbers at text

You can use the PUT function.  For example in a data step.

data want ;

set have ;

if col1='Change' then incometext = put(income,percent.);

else incomtext=put(income,8.2);

run;

All Replies
Contributor
Posts: 60

## Saving formatted numbers at text

It will be good if you use the numeric variable for calculation purpose and for reporting you can use the Character with unique formats

Solution
‎02-15-2012 01:55 AM
Super User
Posts: 8,111

## Saving formatted numbers at text

You can use the PUT function.  For example in a data step.

data want ;

set have ;

if col1='Change' then incometext = put(income,percent.);

else incomtext=put(income,8.2);

run;

Frequent Contributor
Posts: 75

## Re: Saving formatted numbers at text

Thanks Tom,

I think I had a brain snap yesterday.

Worked perfectly as described.

Super User
Posts: 10,778

## Saving formatted numbers at text

If you can sure the value of income could not be between 0 and 1, then you can use embed format.

But I still recommend you to use the method Tom proposed.

```data want;
input Income     Success percent8.;
format success percent8.2;
cards;
831.59      1.751%
923.87      1.759%
.1110     0.47%
;
run;
proc format;
value x
0-1=[percent8.2]
;
run;
data want;
set want;
format income x.;
run;

```

Ksharp

🔒 This topic is solved and locked.