In line 4, "P" substitutes "A * B". It follows that the result of "AZ * BZ" (which is "Q") is "not" "PZ", but rather "PZ * Z". If "PZ" were the answer, it could be stored directly since it has the scale factor built in, as is the case with addition and subtraction. For multiplication, however, the product of two scaled values has an extra scaling built in. As long as this is taken into account, there is still no need to convert "AZ" and "BZ" into "A" and "B" before performing the operation; the result must be divided by "Z" before storing it back. After this, "PZ" will be stored as the result of the multiplication, which is indeed the scaled representation of the result of "A * B" (the desired answer) rather than the result of "AZ * BZ" (which is still scaled).