Perhaps the addition of a character would make this specific problem "go away", and it may be a technique that I use elsewhere.
But the JavaScript technique was exceptionally effective, and I will leave it for now. -----Original Message----- From: Jesse Parker [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 18, 2003 6:25 PM To: [EMAIL PROTECTED] Subject: RE: Witango-Talk: When are these strings equal (Tango 2k) Aha! It is scientific notation. Try these: <@CALC " 1e1 "> = 1 <@CALC " 1e2 "> = 10 <@CALC " 1e6 "> = 1000000 <@CALC " 1e100 "> = 1e+100 <@CALC " 1e1000 "> = inf <@CALC " 2e1000 "> = inf <@CALC " 1e1000 = 2e1000 "> = 1 (your problem) I don't know of any way to automatically turn off scientific notation, but prepending some character to make an invalid scientific notation number is an easy way to work around this. <@CALC " a1e1000 = a2e1000 "> = 0 On Tue, 18 Mar 2003, Jesse Parker wrote: > Anthony, I think this is about scientific notation (e.g. 2.31e03 = 2130.) > It just starts to go nuts when the exponent is too big (e.g. > 1000.) So, > Tango is probably evaluating the two numbers in scientific notation, > getting NaN or error for both, and concluding they are equal. > > On Tue, 18 Mar 2003, Anthony M. Humphreys wrote: > > > > > I was initially using the @IFEQUAL tag on these two strings, like so > > > > <@IFEQUAL '<@VAR aa>' '<@VAR bb>'> > > > > where aa = 39149E20021231 and > > where bb = 39006E20021231 > > > > so that it would be expanded out to this: > > > > <@IFEQUAL '39149E20021231' '39006E20021231'> > > > > and these two strings were always comparing true. I then translated this > > into an @CALC so that I could see if Tango really thought these two > > strings equal. > > > > So Kevin, are you telling me that any strings that have numbers and the > > letter "E" in them will be substituted with "2.718281828459045"? > > Or that the letter "G" in string will substituted with > > "0.381966011250105", etc? > > > > Wow, it DOES fail for G,E,L,P,Q,I,J,X also! > > > > These all fail to behave "predicatably"! > > <@CALC "39149G20021231"> <@CALC "39149E20021231"> > > <@CALC "39149L20021231"> <@CALC "39149P20021231"> > > <@CALC "39149Q20021231"> <@CALC "39149I20021231"> > > <@CALC "39149J20021231"> <@CALC "39149X20021231"> > > > > It's way too late to change the strings, and Tango does not have a text > > specific equality test method, like it does for "contains", "beginswith" > > and "endswith". So I guess I use always use JavaScript to do these > > comparisons going forward. What a pain! > > > > so now it's > > > > <@IF <@SCRIPT EXPR="if (server.getVariable('local$aa') == > > server.getVariable('local$bb')) {'1'; } else {'0';};">> > > > > which works predictably > > > > > > > > > > -----Original Message----- > > From: Kevin Quinn [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, March 18, 2003 3:39 PM > > To: [EMAIL PROTECTED] > > Subject: RE: Witango-Talk: When are these strings equal (Tango 2k) > > > > > > 'E' is a defined CALC variable. Unless you're planning on using natural > > logs, don't use E. Try a 'Z' or something. > > > > -----Original Message----- > > From: Anthony M. Humphreys [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, March 18, 2003 3:34 PM > > To: [EMAIL PROTECTED] Com (E-mail) > > Subject: Witango-Talk: When are these strings equal (Tango 2k) > > > > > > > > I was doing this comparison and it was True in Tango 2k!! > > > > <@CALC "'39149E20021231'='39006E20021231'"> > > > > In this particular data set the last eight characters are always equal > > anyways, so I was able to work around it by truncating the last eight > > chars in the comparison like so: > > > > <@CALC EXPR="'<@LEFT STR="39149E20021231" NUMCHARS="<@CALC > > 'len(39149E20021231) - 8'>">'='<@LEFT STR="39006E20021231" > > NUMCHARS="<@CALC 'len(39006E20021231) - 8'>">'"> > > > > But still, these two strings are NOT equal by any stretch of the > > imagination. Any one care to guess what Tango has done to compare these > > two strings equal? > > > > I'd hate to run into this one again! > > > > > > ________________________________________________________________________ > > TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED] > > with unsubscribe witango-talk in the message body > > > > > > ________________________________________________________________________ > > TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED] > > with unsubscribe witango-talk in the message body > > > > ________________________________________________________________________ > > TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED] > > with unsubscribe witango-talk in the message body > > ________________________________________________________________________ > TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED] > with unsubscribe witango-talk in the message body > ________________________________________________________________________ TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED] with unsubscribe witango-talk in the message body ________________________________________________________________________ TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED] with unsubscribe witango-talk in the message body
