Hello, macro \__dim_strip_bp:n is defined in l3skip.dtx the following way: \cs_new:Npn \__dim_strip_bp:n #1 { \__dim_strip_pt:n { 0.996 26 \__dim_eval:w #1 \__dim_eval_end: } } The calculation from bp to bp is essentially: \dimexpr 0.99626\dimexpr #1\relax\relax Of course, there will always be rounding errors, but the code can be improved by a scaling operation inside e-TeX's \dimexpr, from "The e-TeX manual": | The arithmetic operations are performed individually, except | for ‘scaling’ operations (a multiplication immediately followed | by a division) which are performed as one combined operation | with a 64-bit product as intermediate value. Improved version with higher precision: \cs_new:Npn \__dim_strip_bp:n #1 { \__dim_strip_pt:n { \__dim_eval:w ( #1 ) * 800 / 803 \__dim_eval_end: } } * 800/803 is the integer fraction for 72/72.27 * The parentheses around #1 ensure, that #1 is calculated first. Yours sincerely Heiko Oberdiek