format_length rounded the fraction after splitting the whole part off, so a
value that rounded up to a full unit had nowhere to go:
fractional 5.995 -> 5 (64/64 reduced to 1/1, then dropped)
fractional 0.995 -> 0
architectural 11.999 -> 0'-11"
architectural 23.999 -> 1'-11"
engineering 11.99 -> 0'-12.0" (twelve inches is a foot)
engineering 23.99 -> 1'-12.0"
Round once, into the smallest unit that will be shown, then split feet and
whole inches out of the rounded total. The carry reaches every column, so
the same values now read 6, 1, 1'-0", 2'-0", 1'-0.0" and 2'-0.0".