Zum Rechnen wird intern das maximum der Stellen (31/63) verwendet, um das Ergebnis zu erhalten.
Dabei gibts ja mathematische Regeln, die die Anzahl Nachkomma bestimmen.
Ist das Zielfeld groß genug um das Ergebnis aufzunehmen, gibts keine Probleme.
Nur wenn Zwischenergebnisse größer als das Zielfeld bzw. 31/63 Vorkommastellen werden können, werden die Nachkommastellen reduziert !

Mittels eval(r) wird das Abschneiden der Nachkommastellen verhindert, somit stehen weniger Vorkommastellen zur Verfügung.
Passt nun das Zwischenergebnis nicht, gibts hier bereits einen Überlauffehler (MCH).

Das (h) steht einfach nur für kaufmännisch runden.

Im übrigen arbeitet %DEC (abschneiden) und %DECH (runden) genauso. Allerdings kann man dann Zwischenergebnisse per %DEC/%DECH besser beeinflussen.

Nehme ich Dieters Beispiel nun, kann das Ergbnis ganz anders aussehen:
ergebnis = %dec(1/7:5:5) * %dech(3/8:5:2)

Es kommt also auf die persönlich gewünschte Genauigkeit an, die bei Einzelbefehlen (ADD/SUB/MULT/DIV) nun mal anders aussieht als bei komplexen Formeln.