fix bug in convert method; calculate to total significat digits and then round