I have read the thread.
I just wanted to add evidence that at the core of the problem is a
rendering issue. This is NOT in contradiction that the error sometimes
propagates. If it were a problem of the computational engine only,
it would almost always propagate, which it does not.
Some more indication:
I used my RExcel addin which allows to transfer values from Excel to R.
Transferring the cell containing =850*77.1 result int the correct value
of 65535 in R.
850*77.1+1, by the way, displays as 100001, but
850*77.1+2 displays as 65537
Another funny thing
INT(850*77.1) produces 65535
ROUND(850*77.1) produces 100000, and this 100000 is the "real" value,
it gets transferred to R as 10000 and it propagates to other formulas.
While checking this I also found another strange thing.
MOD(850*77.1,1) produces -7.27596E-12
which it should not because the sign of the result of MOD should always
be the same as the sign of the divisor (the second argument).
Repeatedly subtracting 1 from this number and computing MOD(...,1) for
all these numbers produces -7.27596E-12 until the value produced byt the
subtraction becomes 10000, then MOD produces 1, which it should not
because the result of MOD(...,1) should always be less then one.
INT of these ones, by the way, is 0. Setting the precision for the cell
containing the 1 to 14 places shows that the value is 0.99999999999272
and that explains the 1 as a rounded value. Of course the question here
is why MOD(850*77.1-55534,1) is slightly smaller than 0 (which it should
not be) and MOD(850*77.1-55535,1) is slightly smaller than 1, which at
least plays according to the rules of MOD.
Subtracting 1 repeatedly even further starting at -10000 produces a MOD
value of -7.27596E-12 again.
So the whole issue is quite complicated.
The whole problem of course is as bad as it can get.
A spreadsheet which seemingly even cannot multiply
correctly. Nevertheless, it is probably useful to track down
where the problem might be rooted.
Some further thoughts:
ROUND produces an error which propagates. So if the display mechanism
uses ROUND internally and ROUND is buggy, this might be an explanation
of the behavior we observe.