Date: Fri, 4 Jan 2002 13:34:57 -0800
Reply-To: "Huang, Ya" <ya.huang@PFIZER.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Huang, Ya" <ya.huang@PFIZER.COM>
Subject: Re: problem with comparing digits
Content-Type: text/plain; charset="iso-8859-1"
Paul,
How come I got different number?
1 Data _Null_ ;
2 A = '42E021CAC083126E' ;
3 An = Input(A, Hex16.) ;
4 Ar = Round(An, .001) ;
5 Put An= An=Hex16. Ar=Hex16.;
6 B = '42E021CAC083126D' ;
7 Bn = Input(B, Hex16.) ;
8 Br = Round(Bn, .001) ;
9 Put Bn= Bn=Hex16. Br=Hex16.;
10 Tf = Ar Eq Br;
11 Put Tf=;
12 Run;
An=1.4189857E14 An=42E021CAC083126E Ar=42E021CAC083126E
Bn=1.4189857E14 Bn=42E021CAC083126D Br=42E021CAC083126D
Tf=0
This was run on win2000, v8.2. The difference is that my
an is a huge interger number, but yours is a small real
number 224.132. It looks like SAS intepret HEX number
differently in different system, it make sense, right?
Ya
-----Original Message-----
From: Dorfman, Paul [mailto:Paul.Dorfman@BCBSFL.COM]
Sent: Friday, January 04, 2002 1:12 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: problem with comparing digits
WWV,
Looks like no independent tester, either Windex- or Unixoid has been able to
replicate the result so far... You would not expect V8.1 under the contol of
the Big Brother ... er ... Iron to disbehave like the obscure NT on my
obscure desktop, yet He shows:
9 Data _Null_ ;
10 A = '42E021CAC083126E' ;
11 An = Input(A, Hex16.) ;
12 Ar = Round(An, .001) ;
13 Put An= An=Hex16. Ar=Hex16.;
14 B = '42E021CAC083126D' ;
15 Bn = Input(B, Hex16.) ;
16 Br = Round(Bn, .001) ;
17 Put Bn= Bn=Hex16. Br=Hex16.;
18 Tf = Ar Eq Br;
19 Put Tf=;
20 Run;
An=224.132 An=42E021CAC083126E AR=42E021CAC083126E
Bn=224.132 Bn=42E021CAC083126D Br=42E021CAC083126D
Tf=0
Huh?
-----Original Message-----
From: William W. Viergever [mailto:wwvierg@ATTGLOBAL.NET]
Sent: Friday, January 04, 2002 3:00 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: problem with comparing digits
At 11:05 AM 1/4/2002 -0800, seeliger wrote:
On Fri, 4 Jan 2002, Dorfman, Paul wrote:
> An=224.132 An=406C04395810624E Ar=406C04395810624E
> Bn=224.132 Bn=406C04395810624D Br=406C04395810624D
> TrueFalse=0
>
> This was run under Windows NT, SAS version 8.1. I also ran a similar code
> under S/390 (of course, the hexa for 224.132 were different), and the
result
> was the same.
>
> [But under Win XP the results are]
>
> An=224.132 An=406C04395810624E Ar=406C04395810624E
> Bn=224.132 Bn=406C04395810624D Br=406C04395810624E
> TrueFalse=0
Which is odd; under 8.2 on Linux on an AMD Athlon (on a friday), the
results are
an=224.132 an=406C04395810624E ar=406C04395810624E
bn=224.132 bn=406C04395810624D br=406C04395810624E
true=1
So it may not be a CPU issue as an implementation issue in SAS; it's
difficult to say without knowing the specific CPUs being used. On my box
at least, the final comparison seems to work as expected.
I'll take this opportunity to come out of the closet -- I'm a dual booter,
running RedHat and NT. It might be interesting to dust off the NT side
(it's been several months since I've had to reboot, much less run NT) and
rerun this test there to control for the CPU.
Save your time; under W2K Pro, I too find TrueFalse = 1:
NOTE: SAS (r) Proprietary Software Release 8.2 (TS2M0)
NOTE: This session is executing on the WIN_PRO platform.
1 Data _Null_ ;
2 A = '406C04395810624E' ;
3 An = Input(A, Hex16.) ;
4 Ar = Round(An, .001) ;
5 Put An= An=Hex16. Ar=Hex16.;
6 B = '406C04395810624D' ;
7 Bn = Input(B, Hex16.) ;
8 Br = Round(Bn, .001) ;
9 Put Bn= Bn=Hex16. Br=Hex16.;
10 TrueFalse = Ar Eq Br;
11 Put TrueFalse=;
12 Run;
An=224.132 An=406C04395810624E Ar=406C04395810624E
Bn=224.132 Bn=406C04395810624D Br=406C04395810624E
TrueFalse=1
------------------------------------------------------------
William W. Viergever Voice : (916) 483-8398
Viergever & Associates Fax : (916) 486-1488
Sacramento, CA 95825 E-mail : wwvierg@attglobal.net
------------------------------------------------------------
Blue Cross Blue Shield of Florida, Inc., and its subsidiary and
affiliate companies are not responsible for errors or omissions in this
e-mail message. Any personal comments made in this e-mail do not reflect the
views of Blue Cross Blue Shield of Florida, Inc.