fix allocation method when rounding to other precisions; allow specification of precision as integer or as class constant; add unit testing to catch alternate precision cases