fixing precision on float/decimal to not treat 0 as falsy