We are converting from a 32 bit SAS 9.2 on windows server 2008 to 9.3 on 64 bit windows server 2008 R2
When I do a proc compare of the datasets on the older server and the datasets on the new server I get differences out to E-16 but I see no differences in the numbers.
This happens on percentages calculated in the code not in the source data pulled from a data warehouse. When I examine the data I see no difference and even when I merge the two datasets and difference the values I get zero.
What is going on?
I got the following from SAS
There are subtle differences that in numeric precision when it comes to 64 bit memory. 64 bit memory tends to be a bit more precise than 32 bit. That being said, when it comes to numeric precision at the thirteenth, fourteenth, etc. digits, you cannot always be assured what value will be returned. The inconsistency you are experiencing is simply the nature of numeric precision when dealing with numbers this large.
for now I'm running with a CRITERION=.00000000000001
Most likely your seeing the results precision in storage differences due to different operating systems and internal data storage.
Generally when running proc compare I use the option FUZZ= so that it only reports differences large enough to matter in the values, often something in the E-8 range but that would depend on your data.
I got the following from SAS
There are subtle differences that in numeric precision when it comes to 64 bit memory. 64 bit memory tends to be a bit more precise than 32 bit. That being said, when it comes to numeric precision at the thirteenth, fourteenth, etc. digits, you cannot always be assured what value will be returned. The inconsistency you are experiencing is simply the nature of numeric precision when dealing with numbers this large.
for now I'm running with a CRITERION=.00000000000001
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.