Using LC 7.0.2-rc-2, I have two numbers, each in its own variable ('temp' and 
'aa' below) that may differ at say the eleventh decimal place but are otherwise 
identical. This bit of code:

  set the numberformat to "0.######" -- to get 6 dec place precision just for 
the comparison
  put temp*1 into temp -- force a calculation to make a character string of the 
correct length
  put aa*1 into aa -- force a calculation to make a character string of the 
correct length
     if temp <> aa then
        answer error "No! aa must be" && aa  && "length=" & (number of chars of 
aa) & ", but it is actually" && temp && "length=" & (number of chars of temp)
        [...]

always results in an error even though their length as strings is the same and 
the actual strings are by inspection identical, i.e. the numbers are being seen 
as unequal even though their representation as strings is undoubtedly equal.

If I code

  if length (aa) <> length (temp) or (char 1 to length(aa) of temp) <> (char 1 
to length(aa) of aa)

Then I get the expected result and the error message is not shown.

So it looks as if either I have made a massive mistake (always possible, to put 
it mildly) or the comparison is for the numeric values of the original 
quantities and not the string representations which I have tried to achieve. 
This goes against common sense - where are these more precise numbers being 
stored?

Sadly I can't (yet) reduce this to a simple demonstration to report it as a 
bug, but I shall continue to try.

Just wondered if anyone else had seen anything at all like this.

Still trying, but puzzled.

Graham
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to