```Date: Fri, 4 Jan 2002 13:34:57 -0800 Reply-To: "Huang, Ya" Sender: "SAS(r) Discussion" From: "Huang, Ya" Subject: Re: problem with comparing digits Comments: To: "Dorfman, Paul" 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. ```

Back to: Top of message | Previous page | Main SAS-L page