How many decimal places doe @EVAL use internally? I mean, if I use @EVAL[w+x+y+z=2], does it add four precision-2 numbers or does it use higher precision and round the result to 2 places?

None of the above. @EVAL uses BCD (except for a handful of integer-only functions that use 64-bit integers).

The precision limit for @EVAL is 10,000 decimal places. You set the precision to use in OPTION or in @EVAL.

I should also have asked ... it is correct, then, that a precision spec, like "=5" affects only the output, and not the calculation itself?

Another, mostly unrelated question about @EVAL ... in a plugin, are these equivalent. Paraphrasing a little, 1. ExpandVariables(L"%@EVAL[expression]", 1) 2. ExpandVariables(expression, 1); Evaluate(expression);

Precision is only for output. Internally @EVAL uses whatever precision is necessary for the calculation.