Ulrich Dirr <[log in to unmask]> writes:
> I've looked into TeX.web where I found the following definitions:
> in := set_conversion(7227)(100)
> pc := set_conversion(12)(1)
> cm := set_conversion(7227)(254)
> mm := set_conversion(7227)(2540)
> bp := set_conversion(7227)(7200)
> dd := set_conversion(1238)(1157)
> cc := set_conversion(14856)(1157)
>
> On occasion I need to trace TeX's page building via \tracingpages=2.
> Assume you have a \textheight of 39 \baselineskip + \topskip, and one
> \baselineskip is 13bp. Then \textheight is 507bp+10pt.
No, it isn't. Disregarding the topskip (which has an exact
representation):
\dimen0=13bp
\dimen0=39\dimen0
\showthe\dimen0
\dimen0=507bp
\showthe\dimen0
This is TeXk, Version 3.141592 (Web2C 7.5.2)
%&line parsing enabled.
(/usr/local/TeX/texmf/web2c/cp8bit.tcx)
**
*
*> 508.90073pt.
<*> \showthe\dimen0
?
*
*> 508.90125pt.
<*> \showthe\dimen0
?
! Emergency stop.
<*> \showthe\dimen0
No pages of output.
Transcript written on texput.log.
> Maybe someone could explain this behavior to me?
507bp is calculated as 507*7227/7200, which is different from
39*(13*7227/7200), since we are talking about arithmetic without
associative law. This is common in floating point arithmetic, and it
is of course also relevant in TeX's fixed point arithmetic. Since
units are implemented as scaling ratios rather than fixed values, you
get the results you experience.

David Kastrup, Kriemhildstr. 15, 44793 Bochum
