Desktop productivity for business analysts and programmers

problem with proc format

Reply
N/A
Posts: 0

problem with proc format

Hi
I am trying to run below sas code and its giving me unexpected result.Can I have help on this.


In both case1 and case2 val3 is assigned -600 but the value of val4 derived from the format is differing.


proc format;
Value u33mbchg

low - -600 = ' 94.7649 '

-600 <- -200 = ' 95.8705 '

-200 <- -100 = ' 99.4335 '

-100 <- high = ' 100.9247 ' ;

run;



case1:

Data T1;

val1=sum(440.0001,0.01);

val2=sum(1040.0001,0.01);

val3=Sum(0,val1)-Sum(0,val2);

val4 = 1*put(val3,u33mbchg.);

run;

output
val1=440.0101
val2=1040.0101
val3=-600
val4=94.7649




Using the above proc format we ran the same code with different input value in val1 and val2 as below:

case2:
Data T1;

val1=sum(440.1,0.01);

val2=sum(1040.1,0.01);

val3=Sum(0,val1)-Sum(0,val2);

val4 = 1*put(val3,u33mbchg.);

run;

output:
val1=440.11
val2=1040.11
val3=-600
val4=95.8705
Super Contributor
Posts: 260

Re: problem with proc format

This rather looks like a rounding problem, than a format problem.
ROUNDing the result of your VAL3 variable to, say, 0.0001 would work just fine.

val3=ROUND (Sum(0,val1)-Sum(0,val2), .0001) ;

See problems and discussions about SAS rounding in the documentation :
http://support.sas.com/onlinedoc/913/getDoc/fr/lrcon.hlp/ a000695157.htm (you have to suppress the space character in the web adress, but if I don't type it, I have .ht displayed instead of .htm).
Ask a Question
Discussion stats
  • 1 reply
  • 86 views
  • 0 likes
  • 2 in conversation