in reply to weird excel problem

First, what's the result of
if($x==$y) { print "EQUAL\n"; } else { print "UNEQUAL\n"; }
in the excel code?

Just because the 2 values print out as being equal out to 8 decimal places doesn't mean there isn't a difference in the 10th decimal place, which is what Excel is telling you...

Although I think those numbers look pretty close to the precision you can expect from doubles.

Another alternative would be to print out $x-$y at the perl level before calling Excel... I'm not sure your test is working with the same values Excel is, even if they are what got printed out.
--
Mike